1. 程式人生 > >grub rescue修復方法

grub rescue修復方法

http://blog.sina.com.cn/s/blog_4d6c45250100wxnq.html

問題描述:

開機顯示:GRUB loading
error:unknow filesystem
grub rescue>
造成該問題的原因:
1.直接在window下格式化ubuntu的分割槽
2.調整磁碟 利用工具合併 修改 刪除分割槽 是磁碟分割槽數目發生變化
3.重灌系統選擇不同分割槽  格式化之前分割槽
4.恢復到老版本系統

總之,是由於操作者不知道grub2分為兩個部分。一個部分一般寫在mbr上,另外一部分寫在某個分割槽的boot/grub目錄下。由於上述操作 使mbr的那部分找不到grub目錄中的那部分。


方法1,徹底刪除grub2,讓這個提示不再出現:
適用於已經不想再使用ubuntu,要轉回windows的人。
這個很簡單,只要你有Windows啟動盤(非Ghost),用它啟動,至選擇安裝位置,不用真正安裝,退出重啟就可以。
或者用它啟動到故障修復臺,執行fixboot或者fixmbr都可以。
win7命令列下,則是執行:BootRec.exe /fixmbr
(/fixmbr修復mbr, /FixBoot修復啟動扇區,/ScanOs檢測已安裝的win7,/RebuildBcd重建bcd。)

方法2,重新安裝、修復grub2
1. 先使用ls命令,找到Ubuntu的安裝在哪個分割槽:
在 grub rescue>下輸入以下命令:

程式碼: ls
會羅列所有的磁碟分割槽資訊,比方說:
引用: (hd0,1),(hd0,5),(hd0,3),(hd0,2)
2. 然後依次呼叫如下命令: X表示各個分割槽號碼
如果/boot沒有單獨分割槽,用以下命令:
程式碼: ls (hd0,X)/boot/grub

如果/boot單獨分割槽,則用下列命令:
程式碼: ls (hd0,X)/grub

正常情況下,會列出來幾百個檔案,很多檔案的副檔名是.mod和.lst和.img,還有一個檔案是grub.cfg。假設找到(hd0,5)時,顯示了資料夾中的檔案,則表示Linux安裝在這個分割槽。

4,如果找到了正確的grub目錄,則設法臨時性將grub的兩部分關聯起來,方法如下:

以下是/boot沒有單獨分割槽的命令:
引用: grub rescue>set root=(hd0,5)
grub rescue>set prefix=(hd0,5)/boot/grub
grub rescue>insmod /boot/grub/normal.mod


以下是/boot 單獨分割槽的命令:(這幾句有待驗證)
引用: grub rescue>set root=(hd0,5)
grub rescue>set prefix=(hd0,5)/grub
grub rescue>insmod /grub/normal.mod


然後呼叫如下命令,就可以顯示出丟失的grub選單了。
grub rescue>normal
不過不要高興,如果這時重啟,問題依舊存在,我們需要進入Linux中,對grub進行修復。
啟動起來,進入ubuntu之後,在終端執行:
程式碼:     sudo update-grub
    sudo grub-install /dev/sda
(sda是你的硬碟號碼,千萬不要指定分割槽號碼,例如sda1,sda5等都不對)
重啟測試是否已經恢復了grub的啟動選單? 恭喜你恢復成功!
5,如果找不到正確的/grub目錄,比如第3、4種誤操作,則嘗試尋找是否有linux核心檔案,則依次呼叫如下命令: X表示各個分割槽號碼:
grub rescue>下,輸入:
如果/boot沒有單獨分割槽:
程式碼: ls (hd0,X)/boot

如果/boot單獨分割槽,則:
程式碼: ls (hd0,X)
找名字類似與vmlinuz-3.0.0-12-generic這樣的檔案,這是linux核心檔案,如果找到,記下(hd0,X)中的X值。假設找到(hd0,5)時,顯示了資料夾中的檔案。

然後用live cd 或者 live usb啟動,在live cd的ubuntu的終端中依次輸入以下命令(sda5中的“5”必須改成上面記錄下來數值)(這兩句需要驗證):
如果/boot沒有單獨分割槽:
程式碼: sudo mount /dev/sda5 /mnt
sudo grub-install --boot-directory=/mnt/boot /dev/sda

如果/boot單獨分割槽,則:
程式碼: sudo mount /dev/sda5 /mnt
sudo grub-install --boot-directory=/mnt /dev/sda


然後重新啟動即可。

(以上這兩句命令也可以解決安裝ubuntu時grub安裝位置不對,沒有將grub安裝到/dev/sda,造成啟動時不出現ubuntu啟動項直接進入windows的問題,不過需要自行確定sda5中的“5”改成什麼數字。)
6,如果連linux核心檔案都沒有,那麼,徹底重新安裝吧。
7.實在不行 輸入下面命令
 sudo apt-get