Gehe zum Inhalt

Marco Aurelio Padilha Cassilha

Zurück zu Blog
Full screen All versions

Como acessar FreeBSD no Grub2

August 7, 2015 5:44 , von Marco Aurelio Padilha Cassilha - 0no comments yet | No one following this article yet.
Viewed 255 times
Lizenziert unter den Bedingungen von CC (by)

Como bootar o FreeBSD com Linux, usando GRUB2, mas antes é preciso ter uma noção de configuração do GRUB, para entender seu funcionamento.

O GRUB não trabalha dispositivos como /dev/hda1, /dev/hda2, faz o uso de (hd0,0); (hd0,1) e (hd0,msdos1); (hd0,msdos1,msdos5); (hd0,msdos1,bsd3); (hd0,netbsd1); (hd0,gpt1). Um exemplo  tabela abaixo:

 

Padrão GRUB
/dev/hda1 (hd0,0)
/dev/hda2 (hd0,1)
/dev/hdb1 (hd1,0)
/dev/hdb2 (hd1,1)

 

O GRUB chama o HD principal do computador de hd0 (enquanto o Linux o chama de hda). Um disco secundário recebe o nome de hd1 (o Linux o chama de hdb) e assim segue. Para trabalhar com as partições do HD, o GRUB as referencia através de um número inserido após uma vírgula. Assim, a primeira partição recebe o número 0 (zero) - hd0,0 -, à segunda partição é atribuído o número 1 - hd0,1 - e assim por diante. É importante frisar que, nesse caso, o GRUB não faz distinção entre discos IDE e SCSI.

O arquivo ha ser editado é /etc/grub.d/40_custom a lista de sistemas operacionais. O primeiro sistema da lista é o FreeBSD:

menuentry "FreeBSD" {
set root=(hd0,1)
chainloader +1
}

A primeira linha acima mostra o título que o sistema recebe no GRUB. É esse nome que será exibido quando o GRUB mostrar a lista de sistemas operacionais que o usuário pode escolher. Pode-se usar qualquer frase depois de title. Obviamente, informe algo relacionado ao sistema operacional em questão.

A segunda linha - set root (hd0,1) - informa ao GRUB onde o sistema operacional está instalado. No exemplo, ele se encontra na segunda partição do HD. A palavra root tem a função de indicar que aquela é a partição principal do sistema (ou a partição-raiz) e que, portanto, deverá ser montada.

A terceira, como o FreeBSD trabalha de maneira diferente do Linux, a opção de carregar o kernel também não se aplica ao sistemas BSDs. No lugar desse parâmetro, geralmente é usado chainloader +1, que "chama" o carregador de boot do BSD, deixando a esse a tarefa de iniciar o sistema. Note que em nosso exemplo, há um parâmetro na linha acima de chainloader +1.
 
Abaixo tem 3 opções de carregamento no GRUB.
 
Esta 1º opção precisa do bootloader do BSD.
 
menuentry "FreeBSD, simples" {
    set root=(hd0,1)
    chainloader +1
}
 
Esta 2º opção acessa direto o bootloader do BSD.

menuentry "FreeBSD, fácil " {
    insmod ufs2
    set root=(hd0,1,a)
    kfreebsd /boot/loader
}
 
Esta 3º opção não precisa do bootloader do BSD, pois o acessa direto o kernel.

menuentry "FreeBSD, direto" {
    insmod ufs2
    set root=(hd0,1,a)
    search --no-floppy --fs-uuid --set 4a86db44195cac47
    kfreebsd /boot/kernel/kernel
    kfreebsd_loadenv /boot/device.hints
    set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ad4s1a
    set kFreeBSD.vfs.root.mountfrom.options=rw
}

A opção mais indica é a primeira por ser genérica, as demais necessitam ser especificadas com precisão os parâmetros, mas os parâmetros mostrados acima podem varia, de acordo com suas configurações, isso exige conhecimentos sobre o FreeBSD. O ideal é fazer a instalação do FreeBSD primeiro e ser for ter vários S.O. deixar o Linux por último, por causa do GRUB que se instala no inicio da partição do disco.

Tem parâmetro diferente se usar tabela de partição GPT ou MBR. Exemplos:

GPT

menuentry "FreeBSD" {
    insmod ufs2
    set root=(hd0,gpt3)
    kfreebsd /boot/loader
 }

MBR

menuentry "FreeBSD" {
    set root=(hd0,msdos4a)
    chainloader +1
 }

Depois de configurado o arquivo /etc/grub.d/40_custom,  use o comando update-grub como root.

O insmod é modulo do GRUB, responsável por reconhecer o Filesystem, você pode saber se o GRUB, tem suporte em /boot/grub/i386-pc/.

Fontes:

http://www.vivaolinux.com.br/artigo/O-gerenciador-de-boot-GRUB/?pagina=2

https://forums.freebsd.org/threads/freebsd-accessed-via-grub2.5918/

https://www.gnu.org/software/grub/manual/grub.html#Filesystem

https://help.ubuntu.com/community/Grub2%20Other%20Os

http://members.iinet.net/~herman546/p20/GRUB2%20CLI%20Mode%20Commands.html#MODULE

http://blog.leahhanson.us/notes-on-installing-and-booting-freebsd-from-grub2.html

 

 


Tags zu diesem Artikel: grub freebsd boot

0no comments yet

    Einen Kommentar schreiben

    The highlighted fields are mandatory.

    Wenn Sie ein registrierter Nutzer sind, dann können Sie sich anmelden und automatisch unter Ihrem Namen arbeiten.

    Abbrechen