Configure o GRUB 2 para inicializar o FreeBSD usando ferramentas Ubuntu ou LiveUSB para encontrar quais partições?

5

Atualmente, tenho o Windows 7 e o Ubuntu 11.04 (Natty) instalados no meu computador. Eu também fiz um FreeBSD liveUSB (ou instalador, não tenho certeza; apenas dd ed .img para o pendrive) e instalei sem instalar um bootloader (porque eu não queria bagunçar o GRUB 2, e eu pensei que o GRUB 2 deve ser capaz de inicializar quase tudo). O FreeBSD tem sua própria partição e dentro dele tem partições do FreeBSD (talvez elas são chamadas de fatias?) Como alocadas automaticamente pelo instalador. Eu já tentei executar o update-grub - ele disse que era um Linux desconhecido e não adicionou uma entrada para ele.

Então, duas perguntas:

  1. Como posso encontrar qual partição dizer ao Grub usando as ferramentas do Ubuntu ou do instalador USB que tenho?
  2. Depois de encontrar a partição, o que eu colocaria em /etc/grub.d/40_custom ?
por Azendale 18.07.2011 / 16:16

3 respostas

6

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
}
    
por 18.07.2011 / 16:56
2

Pesquisando em um sistema de arquivos com um determinado UUID, arquivo ou rótulo:

menuentry "FreeBSD (/boot/loader)" {
    insmod ufs2
    search --no-floppy --file --set=root /boot/loader
    kfreebsd /boot/loader
}

ou:

menuentry "FreeBSD (/boot/loader)" {
    insmod ufs2
    search --no-floppy --file /boot/loader --set=root /boot/loader
    kfreebsd /boot/loader
}
    
por 28.08.2012 / 11:36
1

Já considerou a execução de update-grub ? Isso atualizará automaticamente o sistema GRUB e sua lista de itens para você.

    
por 18.07.2011 / 16:22