Tenho um computador com vários sistemas operacionais instalados em partições diferentes:
- FreeBSD
- PC-BSD
- Solaris
- Partição Estendida
- / -partição para Linux-Mint
- Trocar por Linux-Mint
- /home para Linux-Mint
- / -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.