Boot
將 FreeBSD 從 USB 安裝到 USB(ZFS 上的根目錄)
我正在嘗試將 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
在尋找答案時,我發現了一些有趣的網站:
- calomel.org - zfs freebsd root install : 一個易於遵循的腳本,用於在 zfs 上手動安裝 freebsd root
- GPART 手冊頁:BOOTSTRAPPING 一章詳細介紹了 FreeBSD 的引導過程。它尋找什麼分區。
- FreeBSD wiki - zfs 上的 Root - ufs boot:當我嘗試使用 ufs 引導到 zfs 分區時的好資源
- wonkity.com - 磁碟設置
編輯:好的,我的伺服器安裝完成了。我使用安裝程序再次安裝了 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