我正在尝试在 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
在寻找答案时我发现了一些有趣的网站:
- calomel.org - zfs freebsd root 安装:一个易于遵循的脚本,用于在 zfs 上手动安装 freebsd root
- GPART 手册页:BOOTSTRAPPING 这一章非常详细地讲述了 FreeBSD 的启动过程。它寻找什么分区。
- FreeBSD wiki - zfs 上的 Root - ufs 启动:当我尝试使用 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