为了尝试多种操作系统,我在 MBR 分区的硬盘上安装了以下操作系统:
分区 1:UFS 上的 FreeBSD 分为根片和交换区。
开机没问题...
分区 2:UFS 上的 PC-BSD 分为 root-slice、swap、var 和 usr
有一个菜单允许我在两者之间进行选择,启动也没有问题......
分区 5:(逻辑 1):LinuxMint 根分区(使用其他逻辑分区进行交换等)
安装了 GRUB2,启动 LinuxMint 没有问题,但无法选择其他操作系统。
然后我在 /etc/grub.d 中添加了以下条目:
15_freebsd:
#!/bin/sh -e
echo "Adding FreeBSD..."
cat << EOF
menuentry "FreeBSD" {
set root=(hd0,1)
chainloader (hd0,1)+1
}
EOF
16_pcbsd:
#!/bin/sh -e
echo "Adding PC-BSD..."
cat << EOF
menuentry "PC-BSD" {
set root=(hd0,2)
chainloader (hd0,2)+1
}
EOF
我将它们都设置为可执行文件、运行grub2-update
和grub-install /dev/sda
.
我现在有 FreeBSD 和 PC-BSD 的条目。使用 FreeBSD 的版本按预期工作,我启动到 FreeBSD...但是使用 PC-BSD 的版本,还启动到 FreeBSD -不是正如我所料,PC-BSD。
我无法坦率地看到我做错了什么,所以chainloading
显然不适合我的设置。因此,我想知道从 LinuxMint 下安装的 GRUB 直接启动 PC-BSD(即没有链式加载)的正确参数是什么?最奇怪的部分当然是 PC-BSD 条目“有效”——它只是启动了错误的操作系统......
(当然,任何有关为什么链式加载适用于 FreeBSD 而不适用于 PC-BSD 的想法也会有所帮助。)