有一个盒子,里面有一个 MBR 分区磁盘。
它有四个主分区。这些是:
- 视窗
- DragonFly BSD(使用 UFS2)
- Linux
- DragonFly BSD(使用 HAMMER)
链式加载使用 UFS2 的 DragonFly 是可能的。
GRUB 2 是引导加载程序。
我还没有设法让 GRUB 加载使用 HAMMER 的 DragonFly。
中需要包含什么/etc/grub.d/40_custom
?
答案1
DragonflyBSD 在对切片进行分区(在 BSD 术语中,或在 Linux 术语中对分区进行子分区)期间默认使用 disklabel64,而不是 disklabel32。不幸的是,disklabel64 对于 GRUB 和 GRUB2 是不可见的。我已经看到一些讨论和一些尝试使其对 GRUB 可见,但我不确定它们是否真的有效。此外,HAMMER-fs 对于 GRUB 是不可见的。 (但是/boot
DFlyBSD中的是UFS,所以是可见的)。我见过 GNU/Linux 的 HAMMER-fs 的只读 FUSE 实现(Google:“Hammerfs for Linux”),但我还没有尝试过,因为 Linux 内核应该首先看到 disklabel64-ed 切片,以看到上面有一个 HAMMER 分区。因此,要尝试 HAMMER-FUSE,我需要将所有 DragonflyBSD 分区从 dl64-slice 移动到 dl32-slice 或单独的非 bsd 标记的 MBR-partitions/EBR-ones...
所以最简单的方法是链式加载:
menuentry“蜻蜓 BSD x64 @(高清X,是)”{ 设置根=(高清X,msdos是) 链式装载机+1 }
答案2
刚才,我发现 Grub2 模块“part_dfly”可以在以下位置找到: [你的启动分区]/boot/grub/i386-pc.您在 PC 上使用的内核模块列表可以在以下位置找到:[你的蜻蜓分区]/boot/loader.conf。只需更改我的“kfreebsd_module_elf /kernel/.ko”从 loader.conf 到你的。
Grub2 将加载 dfly-partition-sheme,然后从 UFS2 (/boot) 分区加载内核和 RAM-disk-image,DF-BSD 将加载 Hammer-FS(root)。因此,“/boot”分区对于 Grub2 和 DF-BSD 都必须是可读/可写的;该角色的唯一候选者是 UFS 和 UFS2。
请注意,Grub2 区分大小写,因此您必须使用“小”字母书写“kfreebsd_module”,但“set kFreeBSD”必须同时使用大写和“小”字母书写。所以你可以尝试这样的事情:
menuentry "Dragonfly BSD x64 @ (hdX,Y)" {
insmod part_msdos
insmod part_dfly
insmod ufs2
set root=(hdX,msdosY)
kfreebsd /kernel/kernel
kfreebsd_loadenv /boot/device.hints
kfreebsd_module /kernel/initrd.img type=md_image
kfreebsd_module_elf /kernel/acpi.ko
kfreebsd_module_elf /kernel/ahci.ko
kfreebsd_module_elf /kernel/ehci.ko
kfreebsd_module_elf /kernel/dm.ko
kfreebsd_module_elf /kernel/md.ko
kfreebsd_module_elf /kernel/dm_target_crypt.ko
kfreebsd_module_elf /kernel/wlan.ko
kfreebsd_module_elf /kernel/wlan_ccmp.ko
kfreebsd_module_elf /kernel/wlan_tkip.ko
kfreebsd_module_elf /kernel/ath_hal.ko
kfreebsd_module_elf /kernel/ath_rote.ko
kfreebsd_module_elf /kernel/if_ath.ko
kfreebsd_module_elf /kernel/sound.ko
kfreebsd_module_elf /kernel/snd_hda.ko
set kFreeBSD.vfs.root.mountfrom=ufs:md0s0
set kFreeBSD.vfs.root.realroot=crypt:hammer:\
/dev/serno/<your_partition_serno>:dragon
}
如果您使用非加密的hammer-partition而不是:
set kFreeBSD.vfs.root.mountfrom=ufs:md0s0
set kFreeBSD.vfs.root.realroot=crypt:hammer:\
/dev/serno/<your_partiton_serno>:dragon
只需使用:
set kFreeBSD.vfs.root.mountfrom=\
hammer:/dev/serno/<your_partition_serno>:dragon
祝你好运!
答案3
Dragonfly 操作系统使用 boot0 引导加载程序。所以
安装蜻蜓。它提供将 boot0 (它称之为“blocks smth”)安装到分区。将其安装在任何地方。
然后安装其他linux操作系统。
然后你可以通过添加来对蜻蜓进行链式加载
menuentry "ctu" {
insmod chain
chainloader (hd0,2)+1
}
到/etc/grub.d/40_custom
。 Dragofly 安装在第二部分。
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
所有这些东西都是 centos 特有的。