FreeNAS grub2引导ISO


18

我已经将usb-keys设置为多引导不同的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根目录,这是尝试引导它的结果;

无法挂载根

一些有用的信息可以在以下位置找到: 从grub2 USB盘引导FreeBSD iso


遗憾的是,我不知道答案,但是谢谢grub.cfg
phunehehe 2010年

我现在正在看这个。一些论坛指示cd被grub装载为iso9660虚拟ram驱动器。目前正在玩它。
RobotHumans 2011年

@ aking1012您最终弄明白了什么吗?
n0pe 2012年

@NaxMackie-我真的很偏心,但是那是去学校,现在我已经找到了工作。我会尽快恢复。
RobotHumans 2012年

从我的最新尝试中添加了更多详细信息
Thermionix'3

Answers:


1

由于您尝试引导USB闪存驱动器,因此该设备将以da开头。在输出中,您可以看到它被检测为/ dev / da0。根据设备的分区方式,它可能类似于/ dev / da0s1a或/ dev / da0a(如果没有bsdlabel)。

问题在于,根据计算机的不同,它可能在所有情况下都不会检测为da0。da也可用于scsi设备,USB媒体读取器也将作为da *设备出现。一旦可以启动,一种解决方法是使用GEOM标签功能“命名”安装点,然后可以更改fstab以按名称引用它。无论随后标记了哪个设备,它都将始终有效。man glabel在FreeBSD环境中获得更多信息。(或使用freebsd手册查看网站)


0

似乎内核已停止,因为启动USB驱动器时尚未报告它的存在。我想知道您的配置是做什么的,但是它不起作用并且没有为引导提供FreeBSD内核正确的设备名称。

您需要询问内核有关键入“?”的可用驱动器的信息。如提示所示。之后,您应该为根分区键入正确的根文件系统规范。根据您对USB驱动器进行分区的方式,它应该类似于ufs:/ dev / da0s1a。

找到正确的驱动器路径后,应使用该路径更改grub.conf。还要注意,它应该读为“ FreeBSD”,而不是“ kFreeBSD”,因为您的设置只是被默默忽略。


0

尝试添加加载程序变量以增加USB初始化的延迟。您可以将此变量添加到/boot/loader.conf或在启动时根据提示添加。或者,您也可以在启动菜单中选择“ 3”选项,以允许从USB启动。(不确定是否是第三名)

set kern.cam.boot_delay="10000"

当引导过程无法安装USB记忆棒时,此功能适用。

上面的三个选项都可以完成同一件事

祝好运

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.