GRUB RESCUE下 修複Linux引導

來源:互聯網
上載者:User

    前段時間修複移動硬碟分區表的時候,把本本的分區也重新弄了下,導致ubuntu的grub找不到linux分區(由於root分區uuid改變造成的不能正常啟動),切換到Linux系統時,提示錯誤“unknown filesystem”,進入grub rescue模式。

在Google上搜了一下,終於解決了,方法如下:

1. 首先使用set命令,查看當前配置資訊;

2. 然後再使用ls命令,遍曆一下所有的磁碟;

3.尋找Linux作業系統的”/”分區所在的磁碟,可以使用“ls (hdx,x)/”,這裡的hdx代表你的物理磁碟,如果只有一塊硬碟,則x的值為0,後面一個x(也肯呢個是msdosx,是具體情況而定)代表“/”分區的編號。

執行該命令(注意,ls命令後的“/”不能少,否則會出現“bad filename”錯誤)後,如果結果為“unknown filesystem”,則說明不是Linux分區,繼續尋找,知道返回帶有“ /boot”目錄的分區。

4. 找到“/”掛載點所在的分區後,就可以修改開機磁碟分割了:

    grub rescue >root=(hdx,msdosx)

    grub rescue >prefix=(hdx,msdosx)/boot/grub

    grub rescue >insmod normal

    grub rescue >normal

執行完normal命令後,如果normal模組載入成功,那我們就可以看到久違的grub引導菜單了。此時,按“c”切換到grub的命令列模式,修改grub菜單:

   grub >root=(hdx,msdosx) //設定系統開機磁碟分割,在這裡指向核心所在分區

   grub >prefix=(hdx,msdosx)

接下來載入Linux.mod模組,並將新的啟動資訊寫入grub:

   grub >insmod (hdx,msdosx)/boot/gurb/linux.mod

   grub >linux /boot/vmlinuz-xxx-xxx root=/dev/sdax //裡邊的xxxx可以按Tab鍵

   grub >initrd /boot/initrd.img-xxx-xxx

5.執行boot命令,啟動系統(如果系統不能啟動,可以重複1-4步,多試幾次):

   grub >boot

6.正常啟動系統後,在終端中輸入“sudo update-grub”命令,重建“grub.ccfg”檔案,更新grub資訊,螢幕會出現“generating…”的資訊。

如果沒有安裝grub-pc軟體包,或者grub-legacy,會出現無法找到命令的錯誤。這時,只需安裝一下grub-pc軟體包即可。(注意:安裝過程中會出現提示要不要建立grub到第一分區,由於我的本本第一分區是Windows系統,所以在此我選擇“NO”,而是將grub建立在“/”掛載點所在的分區)

7.更新完畢之後,重啟,問題解決了。如果問題還沒解決,重複1-6步的同時,重建立立grub到第一硬碟mbr:

sudo grub-install /dev/sda

轉載自:http://blog.csdn.net/miromelo/article/details/6132702

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.