Boot

如何用 grub 完全重建引導分區?

  • August 7, 2011

openSUSE 11.4,我在 pendrive 上有引導分區。

問題是當我啟動電腦時,grub 立即顯示錯誤“找不到文件”(我不知道是哪個文件)並切換到“救援模式”。

我可以從另一個 pendrive 啟動電腦,但我想使用原來的(上面提到的那個)。我嘗試使用 Yast 刷新 grub,或者手動執行

grub --batch < /etc/grub.conf

或者通過將所有文件從工作的pendrive複製到非工作(之後編輯device.map),仍然沒有成功,“救援模式”就是我所看到的。

我知道一種通過重新安裝整個系統來重建 pendrive 內容(它只包含引導分區)的方法,這將強制再次正確建構引導分區,但我正在尋找更聰明的東西。

那麼,如何重建整個引導分區+grub,而不僅僅是打磨其中的 2 或 3 個文件。

好的,因此,如果您可以將舊的 pendrive 作為第二個,那麼您可以這樣做:

  1. 備份舊隨身碟的內容。
  2. 一旦你連接了兩個 pendrive 並且你的系統正在執行,以類似於第二個分區的方式重新分區舊的 pendrive - 也就是說,使/boot舊的分區與新的分區具有相同的編號和類型一(參考 的輸出fdisk -l)。不要忘記使其可啟動。
  3. 清除(在某處保留備份)/boot/舊 pendrv 上的內容並複制新文件中的所有文件。
  4. 解除安裝兩個筆式驅動器,記住哪個是哪個(我的意思是/dev/sd[ab]等等)
  5. 用新的引導扇區覆蓋舊筆式驅動器的引導扇區:

在這裡,我假設/dev/sdb你的舊筆式驅動/dev/sdc器是新的-確保用適當的設備名稱替換那些,否則你甚至會搞砸你的整個系統!

dd if=/dev/sdc bs=512 count=1 of=/dev/sdb

再一次,if=參數必須指向新的——現在可以正常工作的那個,並且of=參數必須指向舊的 pendrive(要修復的那個)。

應該是這樣的。舊的 pendrive 現在應該和新的一樣工作。

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