『壹』 linux 修復grub開機引導(ubuntu)
問題 : 有時候Linux系統/boot分區損壞時,啟動Linux系統時直接進入字元介面的grub引導,並沒有進入到系統或者開機顯示 error:unknow filesystem提示
解決辦法:
Linux開機自動會進入到grub引導介面(如果沒進入到grub引導介面可以按C鍵進入)
第一步:找到系統對應的扇區及/boot/grub目錄
注意 :假設是硬碟介面類型sd,hd0對應是sda hd1對應是sdb
(hd0)≠(hd0)
(hd1,gpt2)=(hd1,2)
ls (hd1,gpt2) 查看(hd1,gpt2)扇區信息(盤符、空間等)
ls (hd1,gpt2)/ 查看(hd1,gpt2)扇區下的內容(文件、文本等)
如果列印每個扇區目錄信息,會出現兩種情況:
1、ls (hd1,gpt2)顯示Unknow filesystem提示說明這個扇區不是我們要找系統分區
2、ls (hd1,gpt2)顯示/boot /proc等系統目錄信息說明這個扇區是我們要找的系統分區
如果找到對應扇區的系統分區,可能會遇到兩種情況:
1、 A目錄下有/boot/grub
2、A目錄下有/boot,B目錄下有/grub (此時在第二步載入系統內核要使用 set prefix=(hd1,gpt2)/grub 命令)
grub > ls
(hd0), (hd1), (hd1, gpt1), (hd2,gpt2), (hd3, gpt3)
第二步:載入系統內核
grub > set root=hd1,2 #此處不需要括弧,加括弧也可以,hd0和hd1是有區別
grub > set prefix=(hd1,2)/boot/grub
grub > linux /vmlinuz root=/dev/sdb2 #vmlinuz必須使用TAB補全(可能有後綴),注意sda或sdb需要看自己的實際情況
grub > initrd /initrd.img-xxx #TAB補全,多內核情況下版本需統一
grub > boot
提示 :如果在boot之後不幸進入BusyBox,說明參數設置有問題,可以仔細查看出錯的日誌,再重啟系統後重復執行第二步操作(重啟系統後上面設置的參數會被清空)。
第三步:修改grub引導
如果成功進入系統,記得要馬上信息grub引導,不然重啟系統後問題還是存在
sudo update-grub2 #grub2命令(高版本使用grub2)
$ sudo grub-install /dev/sdb
第四步:重啟系統
重啟系統後即可正常進入系統
reboot
『貳』 linux啟動出現grub
解決過程[以RedHat 7.3為例] 1.把安裝盤的第一張放到光碟機,然後重新啟動機器,在BOIS中把系統用光碟機來引導。 2.等安裝界面出來後,按[F4]鍵,也就是linux rescue模式。 3.一系列鍵盤以及幾項簡單的配製,過後就[繼續]了。。。這個過程,我不說了,比較簡單。 4.然後會出現這樣的字元 sh# 5.我們就可以操作GRUB了。哈。只要能出現這樣的,以後都是小KISS了 sh#grub 會出現這樣的字元 grub> 我們就可以在這樣的字元後面,輸入 grub>root (hdX,Y) grub>setup (hd0) 如果成功會有一個successful... 這里的X,如果是一個盤,就是0,如果你所安裝的linux的根分區在第二個硬碟上,那X就是1了;Y,就是裝有linux系統所在的根分區。 setup (hd0)就是把GRUB寫到硬碟的MBR上。 我來舉個例子吧,如果以我的硬碟為例。我在第一個硬碟上裝了XP,在第一個硬碟的hda9個裝了RH73.我總共有兩個硬碟。如果我把GRUB丟了,就用這種辦法找回來。 如果你不知道你的linux安裝到哪個分區上,也就是說,不知道這個Y是多少,這也不要緊,先輸入root (hdX,然後用[TAB]來查看,一下就明白了... 操作如下:[前面開機啟動的上面有說明] sh# grub 會出現下面的字樣的 grub> 然後再這樣操作,如果我知道我的linux裝在第一個硬碟上,但我不知道裝在哪個分區上,就可以先輸入root (hd0,然後用[TAB]鍵來補齊,然後就明白了。 [code:1:3249bf1c31] grub>root (hd0,8) grub>setup (hd0) [/code:1:3249bf1c31] 請弟兄們結合文章及這個例子,仔細想一想。 我的第一個硬碟的分區情況是這樣的。。 /dev/hda1 主分區 NTFS /dev/hda2 擴展分區 /dev/hda5 NTFS /dev/hda6 FAT /dev/hda7 FAT /dev/hda8 /boot ext3 /dev/hda9 / ext3 /dev/hda10 /swap ext3 最後就是按一下[RESET]鍵,重新啟動,就OK了。。。。
『叄』 linux開機grub>命令修復方法
出現grub rescue模式一般是硬碟分區出現變動、導致舊的grub找不到啟動文件而出現的。
出現錯誤具體原因未知,但開機不能引導肯定是grub配置文件出錯,/boot/grub2/grub.cfg
解決方法:
2,grub> 模式下:
輸入:ls 查看所有磁碟分區:hd。x,x......
用:ls hd(x,x)/grub 找grub所在的分區,有正確執行結果的便是
找到linux所在分區後執行:
set prefix=hdx,x/grub
set root=hx,x
insmod normal
再使用normal命令進入系統後,再修復grub 配置。
or:
查找boot分區:
find /boot/grub/menu.lst 或者 find /boot/grub2/grub.cfg
輸入以下命令:
cat hd0,7/boot/grub/grub.conf
關於內核信息的,看一下就明白了。
按照下面命令依次輸入
指定/boot分區使用命令:
grub>root hd0,0
grub>kernel /boot/vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet 回車
grub>initrd /boot/initrd-2.6.18-53.el5.img 回車
boot 回車啟動
『肆』 linux重啟後出現了grub
如果還有其他操作系統出現grub正常會自動區分uefi和mbr的bios不同引導方式,只有linux時出了grub很可能引導缺失文件或者root下的/boot有嚴重問題。有條件掛livecd進去看看。