多系統(tǒng)進入Ubuntu時的Grub Rescue
當Windows和Ubuntu共存時,Ubuntu會自帶一個Grub系統(tǒng)引導,你可以從里面選擇開啟哪一個系統(tǒng)但是,如果我們在Windows里面進行了磁盤分區(qū)的話,就會重新整理磁盤信息,Grub獲得的系統(tǒng)啟動盤就會發(fā)生改變,如果Windows在/dev/sda1啟動、Ubuntu在/dev/sda8啟動的話,分區(qū)所造成的磁盤啟動可能會把Ubuntu的啟動改到了隨機的一個區(qū),如/dev/sda2等,反正改后的區(qū)里不會包括Grub啟動文件,這個時候,我們就需要手動將Grub啟動文件設置一下,讓Ubuntu能夠找到它的啟動區(qū)。
下面直接進行一系列操作來解決Grub的丟失問題吧
首先說明,在Grub Rescue下能用的命令很少,安裝下面的方法一步步來即可:
第一步:查找Grub啟動磁盤。
1.ls
執(zhí)行這個命令后會出現(xiàn)你的磁盤里目前存在所有分區(qū),像我的磁盤有如下的分區(qū):
(hd0,msdos1) (hd0,msdos5) (hd0,msdos6) (hd0,msdos7) (hd0,msdos8)...
第二步:查找非NTFS文件系統(tǒng)的分區(qū)。
1.ls (hd0,msdos1)/
執(zhí)行它之后會出現(xiàn)一定的信息,如果是file not kown之類的話,就說明這個分區(qū)并不是我們想找的,一直不停的找剩下的分區(qū),知道出現(xiàn)其他的信息,根據(jù)Ubuntu的版本不同,可能會出現(xiàn)/和/boot都能識別,也可能只有/boot才能識別,反正出現(xiàn)兩個都能識別的時候要都試試,拿我的磁盤來說,(hd0,msdos8)
和(hd0,msdos9)都識別了
第三步:查找Grub文件位置
1.ls (hd0,msdos8)/boot/grub
這個命令可以找到grub,但是奇怪的是,我的(hd0,msdos9)里也有一個grub,于是我就先試了一下
msdos8里的grub內容,執(zhí)行第四步
第四步:設置grub啟動
1.grub rescue>set root=(hd0,msdos8)
2.grub rescue>set prefix=(hd0,msdos8)/boot/grub
3.grub rescue>insmod /boot/grub/normal.mod 按照正常的情況,執(zhí)行insmod的時候就可以了,但是我的磁盤里貌似沒有把mod文件放到msdos8下,
執(zhí)行結果提示文件未找到,于是我就試著設置為msdos9,可是我的grub是直接放到msdos9里面的根目錄
下的,所以我又進行了如下命令
1.grub rescue>set root=(hd0,msdos9)
2.grub rescue>set prefix=(hd0,msdos9)/grub
3.grub rescue>insmod grub/normal.mod 結果沒有任何提示,肯定是成功了
第五步:顯示丟失的Grub菜單
1.grub rescue>normal
這樣就可以直接顯示出Grub菜單,然后可以進入Ubuntu系統(tǒng)了
第六步:修復Grub
1.sudo update-grub
2.sudo grub-install /dev/sda
sda是一定不能加上1,5之類的號碼的,那個是磁盤號,不是分區(qū)號
到這里重啟一下就可以恢復如初了。
【編輯推薦】