前段時間修複移動硬碟分區表的時候,把本本的分區也重新弄了下,導致ubuntu的grub找不到linux分區(由於root分區uuid改變造成的不能正常啟動),切換到Linux系統時,提示錯誤“unknown filesystem”,進入grub rescue模式。
在Google上搜了一下,終於解決了,方法如下:
1. 首先使用set命令,查看當前配置資訊;
2. 然後再使用ls命令,遍曆一下所有的磁碟;
3.尋找Linux作業系統的”/”分區所在的磁碟,可以使用“ls (hdx,x)/”,這裡的hdx代表你的物理磁碟,如果只有一塊硬碟,則x的值為0,後面一個x(也肯呢個是msdosx,是具體情況而定)代表“/”分區的編號。
執行該命令(注意,ls命令後的“/”不能少,否則會出現“bad filename”錯誤)後,如果結果為“unknown filesystem”,則說明不是Linux分區,繼續尋找,知道返回帶有“ /boot”目錄的分區。
4. 找到“/”掛載點所在的分區後,就可以修改開機磁碟分割了:
grub rescue >root=(hdx,msdosx)
grub rescue >prefix=(hdx,msdosx)/boot/grub
grub rescue >insmod normal
grub rescue >normal
執行完normal命令後,如果normal模組載入成功,那我們就可以看到久違的grub引導菜單了。此時,按“c”切換到grub的命令列模式,修改grub菜單:
grub >root=(hdx,msdosx) //設定系統開機磁碟分割,在這裡指向核心所在分區
grub >prefix=(hdx,msdosx)
接下來載入Linux.mod模組,並將新的啟動資訊寫入grub:
grub >insmod (hdx,msdosx)/boot/gurb/linux.mod
grub >linux /boot/vmlinuz-xxx-xxx root=/dev/sdax //裡邊的xxxx可以按Tab鍵
grub >initrd /boot/initrd.img-xxx-xxx
5.執行boot命令,啟動系統(如果系統不能啟動,可以重複1-4步,多試幾次):
grub >boot
6.正常啟動系統後,在終端中輸入“sudo update-grub”命令,重建“grub.ccfg”檔案,更新grub資訊,螢幕會出現“generating…”的資訊。
如果沒有安裝grub-pc軟體包,或者grub-legacy,會出現無法找到命令的錯誤。這時,只需安裝一下grub-pc軟體包即可。(注意:安裝過程中會出現提示要不要建立grub到第一分區,由於我的本本第一分區是Windows系統,所以在此我選擇“NO”,而是將grub建立在“/”掛載點所在的分區)
7.更新完畢之後,重啟,問題解決了。如果問題還沒解決,重複1-6步的同時,重建立立grub到第一硬碟mbr:
sudo grub-install /dev/sda
轉載自:http://blog.csdn.net/miromelo/article/details/6132702