ubuntu grub rescue修複方法

來源:互聯網
上載者:User

ubuntu grub rescue修複方法 癥狀:開機顯示:GRUB loading                  error:unknow filesystem                  grub rescue>原因:已經發現下面幾種操作會導致這種問題:1,想刪除ubuntu,於是直接在windows下刪除/格式化了ubuntu所在的分區。2,調整磁碟,利用工具合并/分割/調整/刪除分區,使磁碟分割數目發生了變化。3,重新安裝系統,把linux安裝到了新分區,原有分區已經格式化,但是沒有重新安裝grub2。4,用ubuntu備份工具/衍生版製造工具等,把主要磁碟分割回複成了8.X的老版本,結果老版本的grub是grub1,於是把grub2破壞掉了。 總歸,是由於操作者不知道grub2分為兩部分,一部分(一般情況下)寫在了mbr上,另一部分寫在了某個分區的/boot/grub目錄(如果/boot單獨分區,則直接寫在對應分區的/grub目錄)裡面。由於上述操作,致使grub2的mbr裡面的那一部分找不到/grub目錄裡面的那一部分了(或者那一部分已經刪除了)。 方法1,徹底刪除grub2,讓這個提示不再出現: 適用於已經不想再使用ubuntu,要轉回windows的人。這個很簡單,只要你有Windows啟動盤(非Ghost),用它啟動,至選擇安裝位置,不用真正安裝,退出重啟就可以。或者用它啟動到損毀修復台,運行fixboot或者fixmbr都可以。win7命令列下,則是執行:BootRec.exe /fixmbr(/fixmbr修複mbr, /FixBoot修複開機磁區,/ScanOs檢測已安裝的win7,/RebuildBcd重建bcd。) 方法2,重新安裝、修複grub2 1. 先使用ls命令,找到Ubuntu的安裝在哪個分區:在 grub rescue>下輸入以下命令:ls會羅列所有的磁碟分割資訊,比方說:(hd0,1),(hd0,5),(hd0,3),(hd0,2)2. 然後依次調用如下命令: X表示各個分區號碼如果/boot沒有單獨分區,用以下命令:ls (hd0,X)/boot/grub如果/boot單獨分區,則用下列命令:ls (hd0,X)/grub正常情況下,會列出來幾百個檔案,很多檔案的副檔名是.mod和.lst和.img,還有一個檔案是grub.cfg。假設找到(hd0,5)時,顯示了檔案夾中的檔案,則表示Linux安裝在這個分區。 3,如果找到了正確的grub目錄,則設法臨時性將grub的兩部分關聯起來,方法如下:以下是/boot沒有單獨分區的命令:grub rescue>set root=(hd0,5)grub rescue>set prefix=(hd0,5)/boot/grubgrub rescue>insmod /boot/grub/normal.mod以下是/boot 單獨分區的命令:(這幾句有待驗證)引用:grub rescue>set root=(hd0,5)grub rescue>set prefix=(hd0,5)/grubgrub rescue>insmod /grub/normal.mod 然後調用如下命令,就可以顯示出丟失的grub菜單了。grub rescue>normal不過不要高興,如果這時重啟,問題依舊存在,我們需要進入Linux中,對grub進行修複。啟動起來,進入ubuntu之後,在終端執行:代碼:    sudo update-grub    sudo grub-install /dev/sda(sda是你的硬碟號碼,千萬不要指定分區號碼,例如sda1,sda5等都不對)重啟測試是否已經恢複了grub的啟動菜單? 恭喜你恢複成功!4,如果找不到正確的/grub目錄,比如第3、4種誤操作,則嘗試尋找是否有linux核心檔案,則依次調用如下命令: X表示各個分區號碼:grub rescue>下,輸入:如果/boot沒有單獨分區:ls (hd0,X)/boot如果/boot單獨分區,則:ls (hd0,X)找名字類似與vmlinuz-3.0.0-12-generic這樣的檔案,這是linux核心檔案,如果找到,記下(hd0,X)中的X值。假設找到(hd0,5)時,顯示了檔案夾中的檔案。 然後用live cd 或者 live usb啟動,在live cd的ubuntu的終端中依次輸入以下命令(sda5中的“5”必須改成上面記錄下來數值)(這兩句需要驗證):如果/boot沒有單獨分區:sudo mount /dev/sda5 /mntsudo grub-install --boot-directory=/mnt/boot /dev/sda如果/boot單獨分區,則:sudo mount /dev/sda5 /mntsudo grub-install --boot-directory=/mnt /dev/sda 然後重新啟動即可。(以上這兩句命令也可以解決安裝ubuntu時grub安裝位置不對,沒有將grub安裝到/dev/sda,造成啟動時不出現ubuntu啟動項直接進入windows的問題,不過需要自行確定sda5中的“5”改成什麼數字。) 5,如果連linux核心檔案都沒有,那麼,徹底重新安裝吧。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.