MBR 디스크에서 GRUB 2를 사용하여 DragonFly BSD(HAMMER)를 부팅하는 방법은 무엇입니까?

MBR 디스크에서 GRUB 2를 사용하여 DragonFly BSD(HAMMER)를 부팅하는 방법은 무엇입니까?

내부에는 MBR 파티션 디스크가 들어 있는 상자가 있습니다.

4개의 기본 파티션이 있습니다. 이것들은:

  • 윈도우
  • DragonFly BSD(UFS2 사용)
  • 리눅스
  • 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 @(HD엑스,)"{
   루트 설정=(HD엑스, 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는 두 번째 부분에 설치됩니다.
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
이 모든 것들은 centos에 따라 다릅니다.

관련 정보