Para ser claro, o que eu quero é uma entrada do FreeBSD GRUB2 que inicialize o FreeBSD em um ZFS (nome: zroot) com firmware BIOS (não UEFI). O sistema operacional em que o GRUB está instalado é o Arch Linux se ajudar, o Arch está usando uma raiz ext4, é o FreeBSD que está usando o ZFS.
Minha tabela de partições é (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)
Eu vi essa resposta , mas ela se refere ao FreeBSD em uma raiz UFS, e também vi essa resposta que pertence ao Arch Linux no ZFS, não ao FreeBSD no ZFS.
Eu tentei usar esta entrada:
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
}
mas recebi este erro:
Usando o bootloader do FreeBSD (que infelizmente eu substituí instalando o GRUB no meu disco, embora seja simples restaurá-lo), consegui inicializar minha instalação do FreeBSD, então não há nada de errado com isso. Instalei o FreeBSD e configurei para inicializar seguindo o que coloquei neste diretório: https://github.com/fusion809/freebsd-scripts/tree/master/zfs-manual-install .
Não importa, eu encontrei a resposta graças aos fóruns do FreeBSD . Isto é o que eu precisava no meu grub.cfg:
Para ser claro, tentei isso com sucesso, até tentei escrever um arquivo e reinicializar para verificar se não era apenas leitura e o arquivo ainda estava lá e não havia sido alterado pela reinicialização de forma alguma (nem mesmo suas permissões foram ).