如何啟動安裝在外部磁碟機第二個分割區的 FreeBSD

如何啟動安裝在外部磁碟機第二個分割區的 FreeBSD

我已在外部硬碟的第二個分割區上安裝了 FreeBSD 9.1,但我無法從它啟動我的電腦。 FreeBSD 是使用 FreeBSD memstick 映像 dd'd 到 USB 隨身碟上安裝的。

第一個分割區是 ntfs 分割區,其中有我的備份。當我發現需要安裝 FreeBSD 時,我「縮小」了第一個分割區(在 Windows 中)以獲得安裝 FreeBSD 的可用空間,然後安裝了 FreeBSD。它從未要求安裝啟動管理員。

當我第一次嘗試啟動時,它失敗了,沒有任何錯誤訊息(可能沒有安裝啟動管理員)。所以我從閃存驅動器啟動,並運行命令boot0cfg -B /dev/ad1)(ad1 指的是外部硬碟)。現在啟動時,它會顯示一個選單,如下所示:

F1 Win
F2 FreeBSD
F5 First disk

按 F1 或 F2 時,我收到錯誤訊息:「BOOTMGR 遺失」。問題可能是什麼?

請幫我啟動 FreeBSD 安裝。

答案1

硬碟ad0和ad1都需要有boot0引導程式碼,FreeBSD所在的ad1的片(MBR分割區)需要有boot1。這有點令人困惑,但源自於 MBR 分割區內使用 bsd 磁碟標籤的架構決策。

Boot0 確實很小且動態,讓其他作業系統的引導程式繼續運作。基本上 boot0 位於 MBR 中。 Boot0 無法讀取磁碟標籤,因此它僅載入分割區(切片)的第一個區塊並跳轉以執行該程式碼。

Boot1 是 FreeBSD 特定程式碼真正開始的地方,記憶體以適合 FreeBSD 核心的模式設置,而 boot1 程式碼可以讀取 BSD 磁碟標籤、查找 / 甚至讀取檔案系統,足以按名稱查找核心檔案。 Boot1 相當複雜,做了很多事情,包括載入更多的引導程式碼、模組、核心並開始執行核心。

我猜你的磁碟佈局有點像這樣:

ad0 - 內部硬碟 (boot0)
ad0s1 - 內部硬碟機的第一個也是唯一的分區(片),C:\

ad1 - 外接硬碟 (boot0)
ad1s0 - 外接磁碟機上的 FAT 或 NTFS 分割區(片),D:\
ad1s1 - FreeBSD 分割區(片)(boot1)
ad1s1a - FreeBSD /
ad1s1b - FreeBSD 交換機
1c -r -r
. 。

我已經注意到哪裡需要 boot0 和 boot1 載入程式。

手動執行此操作可以教導有關 FreeBSD 如何啟動的寶貴經驗。接下來的課程是配置 /boot/ 環境、更改自訂映像以及在載入核心本身之前選擇和配置核心模組。

我猜您這樣做主要是為了學習目的,並且可能對簡化安裝感興趣。 NanoBSD 值得研究。

相關內容