Você tem três opções: você pode ter o Grub tratando FreeBSD como um sistema operacional desconhecido e chainload o carregador de estágio 1 do FreeBSD, ou você pode ter o Grub carregando o carregador de estágio 2 do FreeBSD, ou você pode fazer o Grub carregar o kernel do FreeBSD.
Chainloading
Este é o método mais simples e confiável. Tudo que você precisa é instalar o bootloader do FreeBSD em sua própria fatia (o que o * BSD chama de fatia é o que o Linux e o Windows chamam de partição). Então o Grub deve encontrá-lo automaticamente (via /etc/grub.d/30_os-prober
) quando você executar update-grub
. A entrada em /boot/grub/grub.cfg
ficaria assim (se o FreeBSD estiver em /dev/sda2
a.k.a. /dev/wd0s2
):
menuentry "FreeBSD" {
set root=(hd0,2)
chainloader +1
}
Carregando um bootloader ou kernel do FreeBSD
O Grub2 atualmente suporta todos os principais kernels BSD (supondo que seu computador inicialize BIOS). Os scripts de instalação não (pelo menos os fornecidos com o Ubuntu 10.04, eu não verifiquei 11.04), então se você escolher esta rota, você terá que adicionar suas próprias entradas via /etc/grub.d/40_Custom
.
Aqui estão exemplos de entradas de David Marec nos fóruns do FreeBSD . Eu não testei eles, mas eles parecem plausíveis. O melhor método parece ser carregar o bootloader do estágio 2 do FreeBSD. Você pode especificar a localização da instalação do FreeBSD como um número de disco, número de fatia e partição a
:
menuentry "FreeBSD (/boot/loader)" {
insmod ufs2
set root=(hd0,1,a)
kfreebsd /boot/loader
}
ou por procurando um sistema de arquivos com um determinado UUID, arquivo ou rótulo:
menuentry "FreeBSD (/boot/loader)" {
insmod ufs2
search --no-floppy --file /boot/loader
kfreebsd /boot/loader
}