如何使用 GRUB2 双引导 Debian 和 FreeBSD?

如何使用 GRUB2 双引导 Debian 和 FreeBSD?

我一直在尝试将 FreeBSD 与 Debian 安装一起安装在单个分区中。互联网上常见的所有示例都有缺点:

  1. 有些需要以 GRUB2 拒绝接受的“无效签名”方式对 FreeBSD chainloader 进行链式加载。
  2. 有些人假设您已将 FreeBSD 安装在 BSD 磁盘标签内。
  3. 更改设备顺序或将它们从服务器移动到服务器后,所有解决方案(包括加载 /boot/loader)都不会启动。
  4. 这些解决方案均不适用于 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。

相关内容