ZFS 설치 시 FreeBSD용 GRUB 항목을 어떻게 만듭니까?

ZFS 설치 시 FreeBSD용 GRUB 항목을 어떻게 만듭니까?

분명히 말하면, 제가 원하는 것은 BIOS 펌웨어(UEFI 아님)를 사용하여 ZFS(이름: zroot)에서 FreeBSD를 부팅할 수 있는 FreeBSD GRUB2 항목입니다. 도움이 된다면 GRUB에서 설치하는 운영 체제는 Arch Linux이고, Arch는 ext4 루트를 ​​사용하며 FreeBSD는 ZFS를 사용합니다.

내 파티션 테이블은 (GPT)입니다:

/dev/sda1 - BIOS boot (1M) 
/dev/sda2 - Linux swap (4G) 
/dev/sda3 - Linux filesystem (ext4, 50G) 
/dev/sda4 - FreeBSD boot (128k) 
/dev/sda5 - FreeBSD ZFS filesystem (74G)

나는 보았다이 답변하지만 그것은 UFS 루트의 FreeBSD와 관련이 있습니다.이 답변ZFS의 FreeBSD가 아닌 ZFS의 Arch Linux에서 작동합니다.

나는 이 항목을 사용해 보았습니다:

menuentry "FreeBSD" --class freebsd --class bsd --class os {
    insmod zfs
    insmod bsd
    set root=(hd0,4)
    kfreebsd /boot/kernel/kernel
    kfreebsd_loadenv /boot/device.hints
    set kFreeBSD.vfs.root.mountfrom="zfs:zroot"
    set kFreeBSD.vfs.root.mountfrom.options=rw
    set kFreeBSD.hw.psm.synaptics_support=1
}

하지만 다음 오류가 발생했습니다.

여기에 이미지 설명을 입력하세요.

FreeBSD의 부트로더를 사용하여(슬프게도 GRUB를 디스크에 설치하여 덮어썼지만 복원은 간단했습니다) FreeBSD 설치를 성공적으로 부팅했으므로 아무런 문제도 없었습니다. FreeBSD를 설치하고 이 디렉토리에 넣은 내용에 따라 시작하도록 설정했습니다.https://github.com/fusion809/freebsd-scripts/tree/master/zfs-manual-install.

답변1

괜찮아요 답을 찾았어요 고마워요FreeBSD 포럼. 이것이 내 grub.cfg에 필요한 것입니다:

menuentry "FreeBSD" --class freebsd --class bsd --class os {
    insmod zfs
    insmod bsd
    search -s -l zroot
    kfreebsd /@/boot/zfsloader
    kfreebsd_loadenv /@/boot/device.hints
}

확실히 말하자면, 나는 이것을 성공적으로 시도했고, 읽기 전용이 아닌지 확인하기 위해 파일을 작성하고 재부팅도 시도했으며, 파일이 여전히 존재하고 재부팅으로 인해 어떤 식으로든 변경되지 않았는지 확인했습니다. 권한도 변경되지 않았습니다)).

관련 정보