Para começar, vamos ver como consertar o boot do FreeBSD editando o arquivo do boot do Grub onde é gerenciado o bootloader com o Debian e também o arquivo de identificação das partições no FreeBSD.
Uma breve descrição do problema. O Debian tem o Grub que é o gerenciador de boot da máquina onde tem mais 3 sistemas, o openSUSE, o FreeBSD e o Windows.
Após a substituição do disco HDD por um SDD, instalei o Debian nesse SSD para ele continuar a gerenciar o boot. Os arquivos para gerenciar o boot no Debian ficou configurado da mesma forma como antes, mas por algum motivo a partição do FreeBSD não estava sendo identificada.
No entanto, foi necessário verificar o que estava ocorrendo para que o Grub não identificasse a partição do FreeBSD.
Como consertar o boot do FreeBSD
Antes de qualquer coisa, é necessário verificar como esta a tabela de partição com o comando lsblk ou fdisk -l. Lembrando que para executar o comando fdisk deverá ter privilégio de root.
Como podemos ver nas saídas dos comandos, temos 4 discos, sda, sdb, sdc e sdd. O disco sda tem o Debian na partição sda1, já o disco sdc tem o FreeBSD na partição sdc1, como é identificado com o comando fdisk.
Ao escolher a opção FreeBSD no Grub, retorna erro conforme é visto na imagem abaixo.
Por tanto, no próprio menu do Grub, na opção FreeBSD apertando a tecla “e” podemos editar a entrada do Grub e verificar com qual identificação o mesmo reconhece o FreeBSD.
Como é reconhecido os discos no Grub.
Observe que o Grub identifica o primeiro disco como 0 e a primeira partição como 1.
sda > hd0 sda1 > hd0,1 sda2 > hd0,2 sdb > hd1 sdb1 > hd1,1 sdb2 > hd1,2 sdb3 > hd1,3 sdc > hd2 sdc1 > hd2,1 sdc2 > hd2,2 sdc3 > hd2,3 sdd > hd3 sdd1 > hd3,1
Como o sdc (hd2) não foi identificado corretamente para o boot do FreeBSD, foi alterado para hd1 como se fosse o segundo disco (sdb). A tabela de partição identificada para o FreeBSD no Grub é a sdc1, como identificado com o comando fdisk, logo, ficando a identificação para o Grub como hd1,1.
Após editar no menu do Grub, para executar com essa modificação, pressione as teclas “Ctrl + x“. Deste modo vemos que o boot do FreeBSD carregou perfeitamente.
Como a modificação feita no Grub reconheceu a partição do FreeBSD, agora é só aditar a entrada do FreeBSD no arquivo 40_custom em /etc/grub.d/ no Debian.
menuentry 'FreeBSD 11.2 em /dev/sdc1'{ set root=(hd1,1) chainloader +1 }
Erro no disco do FreeBSD
Com o boot do FreeBSD reconhecido perfeitamente, ao escolher a opção para carregar o sistema, nos deparamos com outro problema, agora com a identificação do disco no FreeBSD.
No prompt onde parar o boot, digite “?” (interrogação), assim é listado todos os discos identificado pelo FreeBSD.
Analisando o resultado e identificando qual o disco que é reconhecido para raiz “/” do sistema FreeBSD, em nosso caso o ada2s1a, portanto basta executar o comando abaixo para carregar o sistema.
Com o sistema FreeBSD já iniciado, é preciso apenas editar o arquivo fstab no diretório /etc e mudar a identificação da partição raiz do sistema e salvar o mesmo.
/dev/ada2s1a / ufs rw 0 0 /dev/ada2s1b none swap sw 0 0
Pronto! Vimos como consertar o boot do FreeBSD, assim já podendo carregar o sistema perfeitamente.
Se gostou do tutorial, compartilhe.
Precisando de suporte? Entre em nosso grupo no Telegram para tirar suas dúvidas que os admins e outros usuários poderão ter ajudar.
Para receber atualizações de nosso blog, siga-nos no Twitter.