pc開機時,在進入系統之前,要先進入的磁碟里安裝了grub開機引導的區域,如果是單系統一般不會有問題,但若是多系統像win+ubuntu或者ubuntu+ubuntu等,有時會出現grub引導程式損壞,或者其主引導所依賴的邏輯順序不是你想要的 這裡舉個極端一些的慄子:一開始在本地磁碟安裝了win+u ...
pc開機時,在進入系統之前,要先進入的磁碟里安裝了grub開機引導的區域,如果是單系統一般不會有問題,但若是多系統像win+ubuntu或者ubuntu+ubuntu等,有時會出現grub引導程式損壞,或者其主引導所依賴的邏輯順序不是你想要的
這裡舉個極端一些的慄子:一開始在本地磁碟安裝了win+ubuntu,grub主引導依賴於本地的ubuntu,然後你有一塊移動硬碟,有一天心血來潮想在上面也莊一個ubuntu系統,安裝ing..-裝好了-正常開機-大功告成!
看起來好像沒問題,但是當你拔下硬碟重新啟動,系統告訴你:
error : unknow filesystem
grub rescue>
系統告訴你grub2配置文件易損壞,進不去原來裝在本地的系統,只能停留在修複模式(grub rescue)
這是因為在移動硬碟安裝ubuntu時,它順便也覆蓋了原來的grub引導,此時的邏輯主引導系統變成了移動硬碟上面那個
此時需要做一件事,將本地ubuntu的引導重新變為主引導
在救援模式下只有很少的命令可以用:set , ls , insmod , root , prefix
(1)set 查看環境變數,這裡可以查看啟動路徑和分區。
(2)ls 查看設備
(3)insmod 載入模塊
(4)root 指定用於啟動系統的分區,在救援模式下設置grub啟動分區
(5)prefix 設定grub啟動路徑
具體修複步驟如下:
1、查看分區:
grub rescue> ls
會出現如下字樣
(hd0) (hd0,msdos9) (hd0,msdos8) (hd0,msdos7) (hd0,msdos6)
(hd0,msdos5) (hd0,msdos2) (hd0,msdos1)
註:上面是我的分區設備,每個人可能不一樣,但原理都是一樣的。
2、尋找ubuntu所在分區:
(就是尋找你的Linux系統是裝在以上哪個分區里)
ls (hd0,msdos1)/
若出現unknown filesystem字樣,則嘗試下一個
……
若出現的是你的ubuntu主文件夾下的文件夾和文件的名字,那就是的要找的分區了。
3、修改啟動分區: (假如你找到的啟動分區是hd0,msdos8)
grub rescue>set root=hd0,msdos8 //假設之前在(hd0,msdos8)下找到了正確的文件夾
grub rescue>set prefix=(hd0,msdos8)/boot/grub /grub路徑設置
grub rescue>insmod normal //啟動normal啟動
grub rescue>normal
之後你就會看到熟悉的啟動菜單欄了
4、進入ubuntu修複grub
在終端里運行
sudo update-grub
sudo grub-install /dev/sda
5、重啟