我正在尝试在启用了 UEFI 启动的主机上通过 PXE 启动 mfsBSD ISO。
BIOS 启动是一项非常简单的任务,该任务的 ipxe 配置如下所示:
kernel --name freebsd http://pxe.host/memdisk
initrd http://pxe.host/mfsbsd.img
imgargs freebsd harddisk raw
boot
由于 UEFI 启动方式不支持 memdisk 方式,并且似乎没有其他方式可以直接启动 mfsBSD,所以我首先切换到启动 GRUB2:
kernel --name grub2 http://pxe.host/grub2.efi
boot
所以现在我尝试从那里启动 mfsBSD ISO,这是我的样子grub.cfg
:
insmod efinet
insmod tftp
insmod loopback
insmod iso9660
insmod ufs2
insmod part_msdos
insmod gfxterm
insmod vbe
menuentry "mfs12.1.iso" {
set isofile=(tftp)/mfs12.1.iso
loopback loop $isofile
echo "ISO mounted"
set root=(loop)
kfreebsd /boot/kernel/kernel.gz
echo "kernel loaded"
kfreebsd_loadenv /boot/device.hints
kfreebsd_module /boot/kernel/ahci.ko
echo "ahci.ko loaded"
kfreebsd_module /mfsroot.gz type=mfs_root
set kFreeBSD.vfs.root.mountfrom="ufs:/dev/md0"
echo "set kFreeBSD.vfs.root.mountfrom"
set kFreeBSD.mfs_type="mfs_root"
echo "set kFreeBSD.mfs_type"
set kFreeBSD.mfs_name="/mfsroot"
echo "set kFreeBSD.mfs_name"
set kFreeBSD.mfsbsd.autodhcp="YES"
echo "set kFreeBSD.mfsbsd.autodhcp"
}
我尝试更改kFreeBSD.vfs.root.mountfrom
为"cd9660:/dev/md0"
但没有结果,尝试了不同的 mfsBSD 版本,并使用此解决方案构建了支持 EFI 的 ISO:https://github.com/mmatuska/mfsbsd/pull/100
我在这个设置中缺少什么吗?我将非常感谢任何帮助。
答案1
您确定事情不起作用吗?您是否尝试过通过网络访问它?
如果你看一下GRUB手册搜索一下amd64 EFI
你会发现它只支持无头启动。通过你的截图你可能然后就已经成功启动系统了。但是,您不应期望在屏幕上看到任何控制台输出。
如果您构建自己的 mfsBSD 版本(或修补 ISO 映像),您可以尝试设置nullconsole
或comconsole
/boot/loader.conf
console=nullconsole
...没有控制台 - 或使用串行控制台使用
console=comconsole
或者看看2.12 高级安装指南
我了解使用 mfsBSD 的便利性,因为一切都是为您构建的。但完全跳过 Grub 并直接启动到 FreeBSD 确实不难。唯一的烦恼是您需要在某处运行 NFS 才能启动。
如果您查看文档31.8。使用 PXE 进行无盘操作- 您可以查看 dhcp 服务器的示例配置。为 UEFI 启动修改此内容很简单:
# path of boot loader obtained via tftp
filename "loader.efi";
# pxeboot boot loader will try to NFS mount this directory for root FS
option root-path "192.168.0.1:/tftproot/FreeBSD/" ;
因此,如果您将 FreeBSD 复制/boot/loader.efi
到 TFTP 服务器,那么我们将立即启动到正确的加载程序。 AFAIKloader.efi
仍然只支持通过网络上的 NFS 获取内核(与pxeboot(8)使用 TFTP 可以进一步实现)。但如果您手头有 NFS,那么设置起来就轻而易举了。您可以阅读更多相关内容无盘(8)
默认情况下将为您提供典型的 NFS 根目录。但是,当您具备这种能力时,那么使用存储磁盘进行工作就一点也不难 - 请参阅17.9。内存盘和多文件系统(8)。作为mdmfs
支撑geom_uzip您可以拥有一个漂亮的包含图像,如果需要,可以轻松修改它。
至于前进的道路,我们已经开展了工作UEFI HTTP 启动支持如果您更喜欢通过 HTTP 而不是 NFS 提供服务,这将简化事情。然而,这仍然相当新颖和闪亮。
有其他报告使用 UEFI、Grub 和 mfsBSD 获得与您运行的设置相同的问题。
再次:我确实了解使用 mfsBSD 映像的便利性。我只是想表明还有一条替代路线。如果我们幸运的话,也许有更多 Grub 经验的人可以提供更好的答案。