最近嘗試着把ubuntu安裝到一塊移動硬盤上,實現即插即用,也避免使用虛擬機帶來到性能降低,算是「真正的」體驗一下ubuntu。可是安裝完成,重啓以後卻老是進入 grub rescue> 模式,開不了機。固然,對於小白到我來講,確定是baidu啦,畢竟不能google。結果發現出現這樣問題到同窗還真很多,不少熱心到朋友都給出瞭解決方法。html
引發這類問題的緣由倒還很多,好比在windows系統中刪除linux系統或者是直接格式化啦linux盤,linux系統到啓動分區被更改了……總之就是grub2配置文件損壞啦,致使不能正常啓動,而進入了救援模式。具體原理不太懂,之後再補上.....linux
此文講解到比較詳細,能夠參考。ubuntu
主要分爲一下幾個步驟:windows
1. 利用 ls 命令列出磁盤信息:性能
grub rescue>lsui
會羅列全部的磁盤分區信息,比方說:google
(hd0,msods1),(hd0,msdos2),(hd0,msdos3),(hd1,msdos2),.....spa
2. 繼續利用 ls 命令來查找 ubuntu 分區:這裏須要注意區分在安裝ubuntu時是否單獨分了/boot分區
grub rescue> ls (hd0,msdos1)/boot/grub # 未單獨分出/boot分區.net
grub rescue> ls (hd0,msdos1)/grub # 單獨進行啦/boot分區unix
針對以上所示到磁盤分區逐個調用上述命令,直到結果顯示沒有錯誤,而是列出一系列文件爲止。個人是 ls (hd0,msdos2)/grub 到時候列出了一些文件,說明找到啦ubuntu分區。
3. 修改啓動分區:一樣區分/boot是否單獨分區的狀況
/boot沒有進行單獨分區:
grub rescue>set root=(hd0,msdos2)
grub rescue>set prefix=(hd0,msdos2)/boot/grub
grub rescue>insmod /boot/grub/normal.mod
grub rescue>normal
/boot進行單獨分區:
grub rescue>set root=(hd0,msdos2)
grub rescue>set prefix=(hd0,msdos2)/grub
grub rescue>insmod /grub/normal.mod
grub rescue>normal # 正常狀況下,這就能夠啓動進入ubuntu啓動界面啦
個人狀況是/boot單獨分區啦,但是利用上述方法並不成功,總說找不到文件,後來百度經驗的方法給了答案(厲害):
set root=(hd0,msdos2)/grub
set prefix=(hd0,msdos2)/grub
insmod normal
normal
4.進入ubuntu以後,修復grub:
開機以後,打開終端:
sudo update-grub
sudo grub-install /dev/sdb # 這裏sdb就是ubuntu安裝到了那個硬盤,我到是在移動硬盤裏面,恰好是sdb,千萬不要寫sdb2等具體分區
寫下來備忘,原理不懂,盼大神指教。