grub rescue模式下啟動和修復
grub rescue 模式下啟動和修復
重灌系統和刪除分割槽之後,可能導致系統啟動出現問題,重啟系統後容易進入到 grub rescue模式。筆者前一段時間由於需要,裝了雙系統(Win8和Ubuntu13.10)。後來想擴充套件Ubuntu系統磁碟空間,想從Win8系統中劃一部分空間,由於操作不當,導致進入了grub rescue模式。
1. 進入grub rescue模式,一般會顯示如下內容:
error: unknown filesystem
grub rescue >
2. rescue模式下可使用的命令有:set,ls,insmod,root,prefix(設定啟動路徑)。只用通過一定的操作載入正常的模組,才能夠進入到正常的模式。
3. 載入模組之前,我們首先需要找到grub2的核心檔案,也就是我們之前安裝好的系統所在的分割槽(即 root的值)。rescue模式下面沒有search的方法,只能通過 ls 逐個顯示查詢。
3.1 直接使用 ls 可以顯示出磁碟分割槽的資訊
grub rescue>ls
(hd0,1),(hd0,5),(hd0,3),(hd0,2)
3.2 使用 ls 試探顯示每個磁碟分割槽中是否有根目錄,也就是是否可以通過grub rescue啟動
grub rescue>ls (hd0,X)/boot/grub 注: X 是指磁碟分割槽編號,比如5
如果結果顯示出來的是Linux的檔案系統的基本結構,那麼我們就可以基本確定可以從這個分割槽啟動系統。
4. 通過上面的步驟確定分割槽之後,我們設定 root的值
grub rescue>root=(hd0,x) 或者 grub rescue> set root=(hd0,x)
5. 找到啟動分割槽之後,還需要載入啟動模組,啟動模組一般在 /boot/grub 目錄下(也有可能在其子目錄中),可以通過 ls 命令檢視
grub rescue>ls (hd0,X)/boot/grub/
6. 找到啟動模組之後,設定啟動模組路徑
grub rescue>prefix=/boot/grub 或者 grub rescue> set prefix=(hd0,x)/boot/grub
注:啟動模組在grub子目錄下,可能由於grub2的原因,加入子目錄的路徑,可能會出錯。
7. 接下來載入啟動模組
grub rescue>insmod normal (自動載入模組)
或 grub rescue> insmod (hd0,X)/boot/grub/normal.mod (手動設定載入模組)
8. 載入啟動模組後,grub rescue 會有一些變化,比如說高亮,或者介面顯示 rescue > 或者 rescue grub > 等。然後正常啟動系統
grub rescue> normal
9. 完成上面步驟之後,就能夠經常的進入到我們熟悉的Linux啟動的介面,接下來的就可以正常使用Linux了。
10. 為了下次啟動是不再進入 grub rescue模式,我們還需要補充兩個步驟
更新boot啟動選項 #update-grub
重建grub到硬碟的MBR # grub-install /dev/sda
至此,基本上就完成了grub rescue啟動和修復的過程。可能不同的Linux版本(或者grub的版本)之間grub rescue啟動和恢復過程,有些細節上的差異。
參考以下內容: