Como posso inicializar o DragonFly BSD (HAMMER) com o GRUB 2 em um disco MBR?

3

Existe uma caixa com um disco particionado por MBR.

Tem quatro partições primárias. Nestes estão:

  • Windows
  • DragonFly BSD (usando o UFS2)
  • Linux
  • DragonFly BSD (usando o HAMMER)

Chainloading do FreeBSD que usa o UFS2 é possível.

O GRUB 2 é o gerenciador de inicialização.

Ainda não consegui fazer o GRUB carregar o FreeBSD que usa o HAMMER.

O que precisa estar no /etc/grub.d/40_custom ?

    
por Mirco 09.07.2016 / 15:26

2 respostas

1

O DragonflyBSD by-defaults usa o disklabel64, ao invés do disklabel32, durante o particionamento do slice (na terminologia do BSD, ou sub-particionando a partição, na terminologia do Linux). Infelizmente, o disklabel64 é invisível para o GRUB & GRUB2. Eu já vi algumas discussões e algumas tentativas de torná-lo visível para o GRUB, mas não tenho certeza se elas realmente funcionam. Além disso, o HAMMER-fs é invisível para o GRUB. (Mas o /boot no DFlyBSD é UFS, então é visível). Eu vi uma leitura do FAM apenas para leitura do HAMMER-fs para GNU / Linux (Google: "Hammerfs para Linux"), mas eu não tentei, porque o kernel do Linux deve ver o primeiro disco veja uma partição do HAMMER nele. Então, para testar o HAMMER-FUSE eu preciso mover todas as partições DragonflyBSD do dl64-slice para o dl32-slice ou separar as partições MBR não-bsd-rotuladas / EBR-ones ...

Portanto, a maneira mais simples é o carregamento em cadeia:

menuentry "Dragonfly BSD x64 @ (hdX,Y)" {
   set root=(hdX,msdosY)
   chainloader +1
}
    
por 20.08.2016 / 22:56
0

Só agora, descobri que o módulo Grub2 "part_dfly" pode ser encontrado em [sua_subcom_conta] / boot / grub / i386-pc. A lista dos módulos do kernel, que você está usando no seu PC, pode ser encontrada em [your_dragonfly_partition] /boot/loader.conf. Apenas mude o meu "kfreebsd_module_elf /kernel/.ko" para o seu a partir do loader.conf.

O Grub2 carregará o dfly-partition-sheme, do que o kernel e a RAM-disk-image da partição UFS2 (/ boot), e então o DF-BSD carregará o Hammer-FS (root). Portanto, a partição "/ boot" deve ser capaz de ler / gravar tanto para o Grub2 quanto para o DF-BSD; os únicos candidatos a esse papel são UFS e UFS2.

Note que o Grub2 é sensível a maiúsculas e minúsculas, então você deve escrever "kfreebsd_module" usando letras "pequenas", mas "set kFreeBSD", deve ser escrito usando letras maiúsculas e "pequenas". Então você pode tentar algo assim:

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

}

Se você estiver usando uma partição hammer não criptografada em vez de:

   set kFreeBSD.vfs.root.mountfrom=ufs:md0s0
   set kFreeBSD.vfs.root.realroot=crypt:hammer:\
   /dev/serno/<your_partiton_serno>:dragon

é só usar:

   set kFreeBSD.vfs.root.mountfrom=\
   hammer:/dev/serno/<your_partition_serno>:dragon

Boa sorte!

    
por 16.09.2016 / 14:37