Como posso inicializar duas vezes o FreeBSD e o PC-BSD - com GRUB2 no MBR?

Como posso inicializar duas vezes o FreeBSD e o PC-BSD - com GRUB2 no MBR?

Tenho um computador com vários sistemas operacionais instalados em partições diferentes:

  1. FreeBSD
  2. PC-BSD
  3. Solaris
  4. Partição Estendida
  5. / -partição para Linux-Mint
  6. Trocar por Linux-Mint
  7. /home para Linux-Mint
  8. / -partição (e tudo) para Linux CentOS

Meu sistema operacional principal é o Linux-Mint, um derivado do Ubuntu.

Tenho o GRUB2 instalado no MBR e ele (GRUB) usa dados da instalação do Linux-Mint (/boot/grub etc.).

O FreeBSD e o PC-BSD possuem, cada um, seu próprio gerenciador de inicialização de segundo estágio em sua partição. O Solaris possui sua própria instalação do GRUB em sua partição (que atua como um carregador de inicialização de segundo estágio, permitindo-me selecionar entre diferentes kernels do Solaris). Linux-Mint e CentOS são inicializados pelo GRUB no MBR.

+++

Meu problema é o FreeBSD e o PC-BSD - eles simplesmente não funcionam bem um com o outro! Mesmo que eu tenha especificado diferentes partições raiz, etc. nas entradas do GRUB para as duas instalações do BSD; o mesmo (FreeBSD ou PC-BSD) é inicializado, não importa se eu selecionei FreeBSD ou PC-BSD no menu GRUB.

A inicialização do *BSD parece ser um processo de três estágios: O carregador MBR (1º estágio), carrega um segundo estágio nas partições BSD, que finalmente carrega o kernel real (3º estágio).

Finalmente, baixando-me para RTFM sobre inicialização em *BSD, descobri o seguinte boato sobre o gerenciador de inicialização BSD de segundo estágio (que foi instalado em ambas as minhas partições BSD):

  • Se nenhuma partição BSD estiver marcada como ativa (a inicializável) na tabela de partições, então o carregador iniciará o carregamento do terceiro estágio do kernel BSD localizado no1ª partição BSDno disco - não importa de qual partição BSD o segundo estágio foi carregado. No meu caso, vaisemprecarregue o FreeBSD (já que é o primeiro).
  • Se por outro lado uma partição BSD estiver marcada como ativa (inicializável), este será o kernel BSD que será carregado como terceiro estágio. No meu caso, sempre obterei o FreeBSD ou sempre obterei o PC-BSD.

Certamente deve haver alguma maneira de contornar isso?! Talvez de alguma forma pule o segundo estágio e deixe o GRUB carregar o kernel do terceiro estágio diretamente - e entãodiferentekernels dependendo da minha escolha... Ou talvez alguns argumentos ou configurações especiais para o segundo estágio - ou talvez um carregador alternativo de segundo estágio? Alguém aqui se deparou com um problema semelhante e resolveu?

PS: A instalação do GRUB no MBR substituiu o boot-loader de 1º estágio instalado pelo FreeBSD (e PC-BSD). No entanto, duvido que usar o primeiro estágio do FreeBSD teria resolvido meu problema, já que o problema é (AFAIK) o carregador de segundo estágio.

Responder1

Primeiro, eu não usaria MBR, porque você tem 4 sistemas operacionais e isso não irá longe. Você precisa ter a partição /boot como primária e não estendida. Então você descarta a instalação do Solaris ou a do Linux. Inicializar no FreeBSD (ou PC-BSD... tanto faz, não faz diferença) com GRUB2 é fácil. Você apenas define seu "set root=..." e então diz "kfreebsd /boot/loader" e pronto. Para o seu tipo, eu usaria a tabela de partição GUID/GPT, onde você também pode dividir todas as partições nela, então você não precisa ter fatias BSD extras.

informação relacionada