Freebsd

FreeBSD:修復 MBR 引導程式碼

  • August 10, 2021

出於某種原因,在我的系統上執行 11.4 引導程式碼失敗。這是正在調查中

$$ 1 $$,但與此同時,我正在嘗試將我的系統恢復到 11.3。 我正在嘗試找出恢復舊啟動程式碼的正確方法。我想它最終會是一些呼叫gpart bootcode -b xxx ...,但我不確定什麼是正確的。或者也許這bsdlabel -b ...是需要的?

以下是事件的簡要時間表:

  1. 我有一個正在執行的 11.3 系統
  2. 編譯的 11.4 原始碼 ( make buildworld, make kernel)
  3. 重啟成功進入11.4核心
  4. 準備安裝新使用者區 ( adjkerntz -i, mergemaster -p)
  5. 安裝了新的使用者空間 ( make installworld)
  • 我的理解是這也適用於任何新的引導程式碼。**真的嗎?**我還沒有從 makefile 中找到可以執行此操作的確切呼叫。
  1. 重啟進入新系統
  • FAILURE - 出現“BTX 停止”錯誤

因此,當我試圖追查實際問題時,我首先關心的是獲得系統可引導增益。

我試圖避免“從備份重新安裝”核選項。我已經知道該怎麼做(:

相反,我試圖讓引導程式碼再次工作。

  • 也許我可以手動安裝 11.3 引導程式碼並仍然執行我的 11.4 系統?
  • 我仍然保存了 11.3 源;也許我可以重新安裝它?

任何意見,將不勝感激。

$$ 1 $$ https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=257722

錯誤連結上有血淋淋的細節,但基本上,我只需要這樣做:

  • 通過 LiveCD U 盤啟動
  • 在那裡,執行cp /boot/loader MOUNTPOINT/boot/loader
    • 其中 MOUNTPOINT 是實際系統的根分區,安裝在 LiveCD 內。所以,沒有 MBR 更新或任何東西,它只是 /boot/loader 中需要更新的普通文件。

有了這個(並且在確定 BIOS 選擇了錯誤的驅動器之後),它又回到了 11.4 系統中的正確引導。

不過,仍然需要弄清楚該回歸是何時引入的——請參閱錯誤報告以了解該進展。

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