Boot

將 FreeBSD 從 USB 安裝到 USB(ZFS 上的根目錄)

  • November 16, 2016

我正在嘗試將 Freebsd 安裝在 ZFS 上的具有 root 權限的 USB 棒上。我已將 FreeBSD-11.0-RELEASE-amd64-memstick.img 寫入另一個 USB 記憶棒。

當我嘗試使用 zfs 安裝它時,安裝程序不會重新啟動(在從安裝程序末尾選擇重新啟動後)同樣在再次啟動電腦後,它會給出以下警告:

FreeBSD/x86 ZFS enabled bootstrap loader, Revision 1.1
(root@releng2.yi.freebsd.org, Thu Sep 29 01:38:49 UTC 2016)
Can't work out which disk we are booting from.
Guessed BIOS device 0xffffffff not found by probes, defaulting to disk0: not found
panic: Assertion failed: (FALSE), function ficlCompileSoftCore, file softcore.c, line428
--> Press a key on the console to reboot <--

當我使用ufs而不是使用zfs的root安裝它時,安裝完成。之後系統即可啟動。

我首先遇到了ufs安裝的問題,安裝很順利,但是在啟動系統時,它無法找到根分區。問題是因為帶有安裝文件的 USB 將是 da0,而安裝在其上的 USB 將是 da1。那麼在啟動系統時,安裝了freebsd的usb就不再是da1了,而是da0了。我通過將安裝freebsd的usb放在一個usb插槽中解決了這個問題,該插槽首先由freebsd載入。

在 zfs 上使用 root 安裝無法使用正確插槽中的 USB 棒。

經過一番搜尋,我終於找到了答案。我有一台 HP Proliant gen 8 伺服器。zfsloader 中存在導致此錯誤的錯誤。這裡有一個更新檔(下載)。我使用的是 FreeBSD 11,更新檔適用於 10.1 和 10.3,但 10.3 也適用於 FreeBSD 11。

重新啟動時 zpool 仍然很忙,因此您必須手動導出它才能重新啟動。

zpool export -f zroot

在尋找答案時,我發現了一些有趣的網站:

編輯:好的,我的伺服器安裝完成了。我使用安裝程序再次安裝了 FreeBSD,並選擇了 ZFS 上的 Root(引導)。安裝完成後,我選擇了進入 shell 的選項。在那裡,我使用以下命令來獲取修補的 zfsloader。

cd /boot
mv zfsloader zfsloader.bak
fetch --no-verify-peer -o zfsloader https://goo.gl/TMQmib
chmod 555 zfsloader
exit

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