将 FreeBSD 从 USB 安装到 USB(ZFS 上的 Root)

将 FreeBSD 从 USB 安装到 USB(ZFS 上的 Root)

我正在尝试在 U 盘上安装 Freebsd,并在 ZFS 上使用 root 权限。我已将 FreeBSD-11.0-RELEASE-amd64-memstick.img 写入另一个 USB 记忆棒。

当我尝试使用 zfs 安装它时,安装程​​序不会重新启动(从安装程序末尾选择重新启动后)此外,再次启动电脑后,它会发出以下警告:

FreeBSD/x86 ZFS enabled bootstrap loader, Revision 1.1
([email protected], 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 记忆棒进行安装。

答案1

经过一番搜索,我终于找到了答案。我有一台 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

相关内容