MBRディスクからGRUB 2を使用してDragonFly BSD(HAMMER)を起動するには?

MBRディスクからGRUB 2を使用してDragonFly BSD(HAMMER)を起動するには?

内部にはMBRパーティションディスクを含むボックスがあります。

4つの基本パーティションがあります。これらは:

  • Windows
  • DragonFly BSD(UFS2を使用)
  • Linux
  • DragonFly BSD(HAMMERを使用)

UFS2用DragonFlyを使用してチェーンローディングが可能です。

GRUB 2はブートローダです。

HAMMERを使用してGRUBからDragonFlyをロードできませんでした。

には何を含めるべきですか/etc/grub.d/40_custom

答え1

DragonflyBSDは、デフォルトでスライス分割(BSD用語またはLinux用語でパーティションのサブパーティション)中にdisklabel32の代わりにdisklabel64を使用します。残念ながら、disklabel64はGRUBとGRUB2には表示されません。 GRUBに表示したいいくつかの議論と試みを見ましたが、実際に動作するかどうかはわかりません。また、HAMMER-fs は GRUB には表示されません。 (ただし、/bootDFlyBSDはUFSのようです。)GNU / Linux用HAMMER-fsの読み取り専用FUSE実装を見たことがありますが(Google:「Hammerfs for Linux」)、まだ試していません。 Linuxカーネルは最初にdisklabel64-edスライスをチェックする必要があるからです。 HAMMERパーティションがあることを確認してください。したがって、HAMMER-FUSEを試すには、すべてのDragonflyBSDパーティションをdl64-sliceからdl32-sliceに移動するか、BSDラベルではなくMBRパーティション/ EBRパーティションに分割する必要があります。

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

メニュー項目「トンボBSD x64@(HDXはい)"{
   ルート設定=(HDX、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ディスクイメージをロードし、DF-BSDはHammer-FS(ルート)をロードします。したがって、 "/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

}

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

   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 ブートローダを使用します。したがって、
Dragonflyをインストールしてください。パーティションにboot0(「blocks smth」と呼ばれる)をインストールすることをお勧めします。どこでもインストールしてください。
次に、別のLinuxオペレーティングシステムをインストールします。
次に、次を追加してDragonflyをチェーンロードできます。

menuentry "ctu" {
insmod chain
chainloader (hd0,2)+1
}

到着する/etc/grub.d/40_custom。 Dragoflyは2番目の部分にインストールされます。
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
これらすべてはcentosによって異なります。

関連情報