web-dev-qa-db-ja.com

MBRディスクでGRUB 2)を使用してDragonFly BSD(HAMMER)を起動するにはどうすればよいですか?

MBRパーティションディスクが1つ入ったボックスがあります。

4つのプライマリパーティションがあります。それらについて:

  • ウィンドウズ
  • DragonFly BSD(UFS2を使用)
  • Linux
  • DragonFly BSD(HAMMERを使用)

UFS2を使用したDragonFlyのチェーンロードが可能です。

GRUB2はブートローダーです。

私はまだGRUB HAMMERを使用するDragonFlyをロードすることに成功していません。

/etc/grub.d/40_customには何が必要ですか?

3
Mirco

DragonflyBSDは、デフォルトで、スライスのパーティション分割中にdisklabel32ではなくdisklabel64を使用します(BSD用語では、またはLinux用語ではパーティションをサブパーティション化します)。残念ながら、disklabel64はGRUB&GRUB2では表示されません。GRUBで表示できるようにするための議論や試みを見てきましたが、実際に機能するかどうかはわかりません。また、HAMMER -fsはGRUBでは表示されません(ただし、/boot DFlyBSDではUFSであるため、表示されます)。 GNU/Linux用のHAMMER-fs(Google: "Hammerfs for Linux")の読み取り専用のFuse実現を見たことがありますが、Linuxカーネルは最初にdisklabel64-edスライスを確認する必要があるため、試していません。その上にHAMMERパーティションがあります。したがって、HAMMER-Fuseを試すには、すべてのDragonflyBSDパーティションをdl64-sliceからdl32-sliceに移動するか、bsdラベルのないMBR-partitions/EBR-onesを分離する必要があります...

したがって、最も簡単な方法はチェーンロードです。

menuentry "Dragonfly BSD x64 @(hd [〜#〜] x [〜#〜][〜#〜] y [〜#〜])" {
 set root =(hd [〜#〜] x [〜#〜]、msdos [〜#〜] y [〜#〜])
チェーンローダー+1 
}
1

ちょうど今、Grub2-module "part_dfly"が[your_boot_partition]/boot/grub /にあることがわかりました。 i386-pc。 PCで使用しているカーネルモジュールのリストは、[your_dragonfly_partition]/boot/loaderにあります。 conf。私の「kfreebsd_module_elf/kernel/.ko」をloader.confからyour`sに変更するだけです。

Grub2は、カーネルお​​よびRAMディスクイメージよりもdfly-partition-shemeをUFS2(/ boot)パーティションからロードし、DF-BSDはHammer-FS(ルート)をロードします。したがって、「/ boot」パーティションは、Grub2とDF-BSDの両方で読み取り/書き込み可能である必要があります。この役割の唯一の候補は、UFSとUFS2です。

Grub2は大文字と小文字を区別するため、「kfreebsd_module」は「小さい」文字を使用して記述する必要がありますが、「setkFreeBSD」は大文字と「小さい」文字の両方を使用して記述する必要があることに注意してください。したがって、次のようなことを試すことができます。

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

}

次の代わりに暗号化されていないハンマーパーティションを使用している場合:

   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

幸運を!

0