我一直在尝试将 FreeBSD 与 Debian 安装一起安装在单个分区中。互联网上常见的所有示例都有缺点:
- 有些需要以 GRUB2 拒绝接受的“无效签名”方式对 FreeBSD chainloader 进行链式加载。
- 有些人假设您已将 FreeBSD 安装在 BSD 磁盘标签内。
- 更改设备顺序或将它们从服务器移动到服务器后,所有解决方案(包括加载 /boot/loader)都不会启动。
- 这些解决方案均不适用于 Debian:Debian 上 GRUB2 选项的命名似乎与 Ubuntu 等不同。
那么如何以最可靠的方式双重启动 Debian 和 FreeBSD?
答案1
将以下内容附加到/etc/grub.d/40_custom
用发现的磁盘的 UUID 替换 UUID 中grub-probe -d /dev/sda2 -t fs_uuid
menuentry 'FreeBSD' {
insmod ufs2
insmod bsd
search --fs-uuid --no-floppy --set=root UUID
kfreebsd /boot/kernel/kernel
kfreebsd_loadenv /boot/device.hints
set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ufsid/UUID
set kFreeBSD.vfs.root.mountfrom.options=rw
}
请注意,对于其他发行版和/或 GRUB 版本,kfreebsd 可能必须更改为 freebsd。
参考:
答案2
我之前在尝试使用 kubuntu 和 ubuntu 双启动时使用过 grub2 。我使用了这个教程:http://www.dedoimedo.com/computers/grub-2.html#mozTocId16468。这非常有帮助并且非常可靠。
“双启动:两个带有 GRUB 2 的操作系统
这可能是最简单的双引导配置。两种操作系统都使用 GRUB 2,因此它们可以轻松地相互交互。这两个系统是Ubuntu 9.10和Kubuntu 9.10,都是Ext4格式的。”
希望这对尝试使用此功能的人有所帮助。
答案3
我在寻找使用 Ubuntu 的 GRUB 2 双启动 FreeBSD 11.0 和 Ubuntu 16.04 时偶然发现了这一点,所有这些都在 EFI 下。
最终,我在直接启动方面遇到了一些问题,但我确实成功地链加载了 FreeBSD。简单的方法chainloader +1
对我来说不起作用,我最终使用了以下方法:
menuentry "FreeBSD 11.0 chainload" {
insmod part_gpt
insmod fat
root = hd0,7
chainloader /efi/boot/bootx64.efi
}
随后是一个update-grub
.我可能错过了一些简单的事情,这将使上述答案适用于 efi。