如何直接通过GRUB2引导PC-BSD实时DVD-ISO IMAGE?


8

通过loopback命令,GRUB2可以直接引导ISO文件。

现在,我已经配置了相应的菜单项来引导PC-BSD Live 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实时系统?

Answers:


1

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

它具有一个ls命令,因此您可以检查内核所在的位置load,然后使用进行加载boot

您也可以尝试通过类似方法直接引导内核kfreebsd (loop)/boot/kernel/kernel


来晚了,但我刚刚看到了您的答案。lsopen '/' failed: no such file or directory。我想知道(显然)找不到根时加载程序如何工作?
user569825

0

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

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

0

编辑:正如该线程中提到的那样,问题是引导过程有时希望以GRUB的环回功能无法实现的方式从环回设备挂载根文件系统。请注意,PC-BSD已重命名为TrueOS,并且它们现在提供USB映像。


我对BSD不太熟悉,在Arch的Multiboot USB驱动器文章中找不到关于BSD的任何信息,但是他们在GRUB文章中有3种方法,至少一种方法适用于环路安装设备:

链加载嵌入式启动记录

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

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

运行传统的BSD 2级装载机

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或旧版使其工作。

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.