Opensuse

重新分配驅動器後如何使 grub 再次工作?

  • September 11, 2016

我的配置:opensuse 11.4,在 pendrive 和硬碟上的引導分區,分區為 sda1、sda2、sdb1。

今天我為我的電腦更換了機箱,並且錯誤地將第二個驅動器連接到了 SATA 3 而不是 SATA 2。所以第二個驅動器沒有正確安裝。我關閉電腦,正確連接它,然後我的問題開始了。

現在,我根本無法啟動系統。以前我在 BIOS (pendrive) 中設置了從可移動驅動器啟動,但現在電腦 (BIOS) 似乎無法將 pendrive 辨識為可移動驅動器,而是將普通硬碟辨識為普通硬碟。所以它不會為“可移動驅動器”啟動。當我更改引導順序並選擇從硬碟驅動器引導(並且我將第一個硬碟驅動器設置為 pendrive)或者如果我直接從引導菜單設置為從 pendrive 引導時,我在進入救援模式的 GRUB 中出現錯誤。

我的猜測是,由於某種原因,pendrive 不再被辨識為可移動媒體,但是硬碟、硬碟驅動器的映射方式不同,我應該修復映射。

我可以啟動 CD 安裝程序並掛載 pendrive 以查看 grub 配置的內容,但是當我處於 grub 救援模式並執行“ls”時,我得到

(hd0) (hd0,msddos1) (hd1) (hd1,msddos2) (hd1,msdos1) (hd2) (hd2,msddos1)

但是我沒有看到映射,所以我不知道 hd0 的真正含義。我只能懷疑這裡的 hd1 是 sda,因為它有 2 個分區(如果後綴 msdsos 表示分區)。

我怎樣才能讓 grub 再次工作?

問題可能是 grub 在啟動時看到的 USB 磁碟與從正在執行的系統執行時不同。以下是您可以解決的方法:

當您啟動(通常是從 hd 啟動)並出現 grub 時,打開 grub 控制台(通常您只需按 即可c)。在 grub 提示符下,開始輸入root (hd

grub> root (hd

然後按Tab,您將看到磁碟盡可能完成。選擇您所在的磁碟和分區/boot。如果您不確定,那麼對於您懷疑的每一個,請執行以下操作:

  • (完成root命令選擇分區並按Enter
  • 輸入cat /並按Tab。您將看到在分區上找到的文件列表。
  • 查看文件列表,確定它是否是包含核心的分區(在 下/boot/)。
  • 如果沒有,請按Esc並重新開始。

一旦你發現了 grub 是如何知道分區的,你可以重新安裝引導載入程序(使用setup命令)並指向你的/boot/grub/menu.lst /boot/grub/grub.conf中正確的分區/文件(你必須確定你的版本使用哪個,或者只是使它們包含相同的內容)。


$$ Edit $$:根據 Macias 的特殊要求,這裡有更多關於如何使用 grub 修復 MBR 的詳細資訊:

在驅動器上重新安裝 MBR 的一種方法grubsetup我上面提到的命令。這是 grub 0.9X 版已知的命令(請參閱文件)。但是您似乎使用的是較新的 grub 分支(1.9X),並且它的命令不同。查看相應的文件- 在此版本中,您可以使用該grub-install實用程序將 grub 安裝到 MBR ,但我不確定是否有任何其他方式 - 從 grub“救援”提示符開始,與 grub-0.97 一樣。也許不是,也許這就是許多發行版更喜歡“傳統”版本的原因之一。

引用自:https://unix.stackexchange.com/questions/18195