FreeNAS grub2 启动 ISO

FreeNAS grub2 启动 ISO

我已经设置了 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 有点不确定,这是尝试启动它的结果;

挂载 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 记忆棒时。

上述所有三个选项都完成同样的事情

祝你好运

相关内容