我已经设置了 USB 密钥来多重启动不同的 Linux 映像。我不介意添加 FreeNAS,并且有一个文档并添加样品grub.cfg
menuentry "FreeNAS-8.0.4-RELEASE-x64" {
insmod ufs2
insmod iso9660
# /usr/local/sbin/grub-probe -d /dev/sde1 -t fs_uuid
# c89c-7b3a
#search --no-floppy --fs-uuid --set c89c-7b3a
set isofile="/boot/FreeNAS-8.0.4-RELEASE-x64.iso"
loopback loop $isofile
kfreebsd (loop)/boot/kernel/kernel.gz
kfreebsd_loadenv (loop)/boot/device.hints
#set FreeBSD.vfs.root.mountfrom=ufs:/dev/ad4s1a
set kFreeBSD.vfs.root.mountfrom=ufs:/dev/acd0
set kFreeBSD.vfs.root.mountfrom.options=rw
#set vfs.root.mountfrom=cd9660:/dev/ad1s1
#set vfs.root.mountfrom.options=rw
}
我对设置 vfs root 有点不确定,这是尝试启动它的结果;
一些有用的信息可以在以下位置找到: 从 grub2 USB 记忆棒启动 FreeBSD iso
答案1
由于您尝试从 USB 闪存驱动器启动,因此该设备将以 da 开头。在输出中,您可以看到它被检测为 /dev/da0。根据设备的分区方式,它可能类似于 /dev/da0s1a 或 /dev/da0a(如果没有 bsdlabel)。
这样做的问题是,根据计算机的不同,它可能不会在所有情况下都检测为 da0。 da 还用于 scsi 设备,USB 介质读取器也将作为 da* 设备出现。一旦您可以启动它,一个解决方法是使用 GEOM 标签功能来“命名”挂载点,然后您可以更改 fstab 以按名称引用它。无论当时标记的是哪个设备,它都将始终有效。 man glabel 了解 FreeBSD 环境中的更多信息。 (或者查看有 freebsd 手册的网站)
答案2
似乎内核已停止,因为在启动 USB 驱动器时尚未报告其存在。我想知道你的配置做了什么,但它不起作用,并且没有提供 FreeBSD 内核正确的启动设备名称。
您需要询问内核有关可用驱动器的信息,输入“?”正如提示所示。之后,您应该为根分区输入正确的根文件系统规范。它应该类似于 ufs:/dev/da0s1a,具体取决于您对 USB 驱动器的分区方式。
当您找到正确的驱动器路径时,您应该使用该路径更改 grub.conf。另请注意,它应该显示为“FreeBSD”,而不是“kFreeBSD”,因为您的设置只是被默默地忽略。
答案3
尝试添加加载程序变量以增加 USB 初始化的延迟。您可以将此变量添加到 /boot/loader.conf 或在引导时根据提示添加。或者,您也可以选择启动菜单中的“第三个”选项以允许从 USB 启动。 (不确定是否是第三次)
set kern.cam.boot_delay="10000"
这适用于启动过程无法安装 USB 记忆棒时。
上述所有三个选项都完成同样的事情
祝你好运