如何通过 GRUB2 直接启动 PC-BSD live DVD-ISO IMAGE?

如何通过 GRUB2 直接启动 PC-BSD live DVD-ISO IMAGE?

通过环回命令,GRUB2 允许直接引导 ISO 文件。

现在,我已经配置了相应的菜单项启动 PC-BSD现场 DVD ISO,但是当我尝试启动它时,FreeBSD 引导加载程序输出:

can't load 'kernel'

这是我当前使用的 GRUB2 菜单项:

menuentry "PC-BSD" {
        search --no-floppy --fs-uuid --set root 0d11c28a-7186-43b9-ae33-b4bd351c60ad
        loopback loop /PCBSD9.0-RC1-x64-DVD-live.iso
        kfreebsd (loop)/boot/loader
}

有人知道我需要如何修改它才能启动 PC-BSD live 系统吗?

答案1

在“无法加载‘内核’”之后,您将进入加载程序提示符。

它有一个ls命令,因此您可以检查内核的位置并使用 和 加载loadboot

您也可以尝试直接启动内核,方法是尝试类似kfreebsd (loop)/boot/kernel/kernel.

答案2

您可以尝试在映像上链式加载引导加载程序。 grub2 链式加载的工作方式如下:

insmod chain
set root = (hdX,Y)
chainloader +1

答案3

编辑:正如有人指出的这个线程,问题是引导过程在某些时候想要从回送设备挂载根文件系统,而 GRUB 的回送功能无法实现这种方式。请注意,PC-BSD 已重命名为真实操作系统他们现在提供 USB 映像。


我对 BSD 不太熟悉,在 Arch 中找不到任何关于 BSD 的内容多重启动 USB 驱动器文章,但是他们有 3 种方法GRUB 文章,在适应循环安装设备时至少应该有一个可以工作:

链式加载嵌入式引导记录

menuentry 'FreeBSD' {
  insmod ufs2
  set root='hd0,gpt4,bsd1'
  chainloader +1
}

这似乎很简单,加载适当的文件系统模块似乎是个好主意,但请记住,在光学介质上有 ISO 9660 或 UDF,并且据我所知,除了 El Torito 之外没有分区。

运行传统的 BSD 第二阶段加载器

menuentry 'FreeBSD' {
  insmod ufs2
  set root='(hd0,4)'
  kfreebsd /boot/loader
}

这几乎就是您在不调用搜索的情况下作为静态配置所做的事情。

直接加载内核

menuentry 'FreeBSD' {
  insmod ufs2
  set root='hd0,gpt4,bsd1'
  ## or 'hd0,msdos4,bsd1', if using an IBM-PC (MS-DOS) style partition table
  kfreebsd /boot/kernel/kernel
  kfreebsd_loadenv /boot/device.hints
  set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada0s4a
  set kFreeBSD.vfs.root.mountfrom.options=rw
}

这看起来非常复杂。我刚刚开始下载 PC-BSD 10.3 iso,希望在接下来的几天里我能找到一些时间来研究如何让它通过 UEFI 或旧版本工作。

相关内容