Ubuntu開機進入GRUB手動引導
推測原因:昨天系統升級新增核心後沒有更新grub
相似情況:ofollow,noindex">Win10更新後引導崩潰修復
問題描述:在引導徹底崩潰的情況下我們曾嘗試使用grub rescue
手動尋找引導進入系統。這次的情況有些不同,開機找到了grub
,但grub
無法正確引導系統。
問題特徵:開機後進入以下介面:
GNU GRUB version x.x.xxxxx Minimal BASH-like line editing is supported... grub >
第一步:找到根目錄和GRUB
使用ls
命令檢視當前可以訪問的扇區:
grub > ls#這裡沒有4的原因:第四扇區應該是虛擬扇區 (hd0), (hd0, msdos7), (hd0, msdos6), (hd0, msdos5), (hd0, msdos3), ...
繼續使用ls
檢視每個扇區的資訊,需要注意:
-
(hd0)
≠hd0
-
(hd0,msdos5)
⇔(hd0,5)
-
ls (hd0)
⇒檢視(hd0)扇區資訊(碟符、空間...)
ls (hd0)/
⇒檢視(hd0)扇區下內容(多了一個`/``)
通過挨個列印子目錄內容,我們可能遇到以下兩種情況:
-
A目錄下有
boot/
,boot/
下還有grub/
-
A目錄下有
boot/
,B目錄下有grub/
造成該不同的原因是因為最初分割槽時的策略原因,如果按照其他教程發現boot目錄下沒有grub 類似問題,有可能是在另一個獨立扇區。
第二步:載入系統核心
使用命令如下:
grub > set root=hd0,A#此處不需要括號,注意A的實際值(參前) grub > set prefix=(hd0,A)/boot/grub#對應第一種情況 grub > set prefix=(hd0,B)/grub#對應第二種情況 grub > linux /vmlinuz root=/dev/sdaA#vmlinuz必須使用TAB補全(可能有後綴),注意A的值,sda或sdb需要看自己的實際情況 grub > initrd /initrd.img-xxx #TAB補全,多核心情況下版本需統一 grub > boot
如果在boot
之後不幸進入了BusyBox
,說明引數設定有問題,可以仔細看一下出錯的Log
(就在BusyBox
上面)
第三步:修復引導
如果已經成功進入了系統,切記及時修復引導
$ sudo update-grub#grub情況下命令,具體參考之前的設定 $ sudo update-grub2#grub2命令(高版本使用grub2) $ sudo grub-install /dev/sda
正文完
GRUB裡發現的小彩蛋:
GNU GRUB version x.x.xxxxx Minimal BASH-like line editing is supported... grub > hello Hello World grub >
看起來像是測試基礎功能用的,不過Hello World
還真是無處不在。