[TUTORIAL] - Recuperar o Grub em sistemas com firmware UEFI

Fernando_linuxbr
editado fevereiro 3 em Tutoriais

Neste artigo demostrarei como recuperar o grub em sistema UEFI no Fedora.
Causei um erro proposital no grub em uma máquina virtual que possuo com Fedora 34, quando tento iniciar o sistema, me deparo com essa tela.

Vou iniciar o sistema utilizando o liveCD do Fedora e analisar o esquema de particionamento da máquina. É impossível abordar todas as categorias de particionamento possíveis, portanto, vou demonstrar o particionamento tradicional do Anaconda no modo automático. Este método cria, por padrão, uma partição "/boot" com o sistema de arquivos EXT4, outra com o sistema de arquivos VFAT ("/boot/efi") e, por último, uma partição com BTRFS contendo os subvolumes "root" e "home". Após iniciar o liveCD, faça login como root da seguinte forma:

sudo su -

Vamos agora analisar as partições como o comando abaixo:

parted -l

A saída acima revela que o disco "vda" possui três partições. A primeira (vda1) utiliza o sistema de arquivos "VFAT" e corresponde a uma partição do tipo EFI, montada em "/boot/efi". A segunda partição (vda2) utiliza "EXT4" e é designada como a partição "/boot". A última partição (vda3) utiliza BTRFS e contém os subvolumes "root" e "home". Caso o seu esquema seja diferente, é necessário analisar com atenção para ajustar os comandos deste artigo conforme necessário.

Com base na saída do comando parted, verifique no seu sistema qual partição contém o volume "root". Essa partição deve utilizar o sistema de arquivos BTRFS. No meu caso, conforme a saída do comando parted, é a partição "vda3". Portanto, vou montar esse subvolume.

mount /dev/vda3 /mnt -o subvol=root 

Agora, é necessário montar a partição correspondente ao ponto de montagem "/boot/". No meu caso, trata-se da partição "vda2". Se você não realizou alterações no particionamento durante a instalação do Fedora, essa partição é criada com o sistema de arquivos EXT4.

mount /dev/vda2 /mnt/boot  

Por fim, vamos montar a partição correspondente ao ponto de montagem "/boot/efi". No meu caso, trata-se da partição "vda1". Essa partição será sempre formatada com o sistema de arquivos "FAT".

mount /dev/vda1 /mnt/boot/efi 

Após montar as partições, vamos iniciar os preparativos para o chroot.

mount -o bind /dev /mnt/dev
mount -o bind /proc /mnt/proc
mount -o bind /sys /mnt/sys
mount -o bind /run /mnt/run

Após os preparativos vamos realizar o chroot.

chroot /mnt/

Com o chroot realizado, vamos reinstalar o grub.

dnf reinstall shim-* grub2-efi-* grub2-common

Com o grub reinstalado, vamos configurá-lo.

grub2-mkconfig -o /boot/grub2/grub.cfg

Sair do sistema corretamente.

sync 
exit 
systemctl reboot 

Conclusão

Com sorte e atenção seu sistema inicializará corretamente. Eu reinstalei o grub no sistema por uma questão de precaução, às vezes só a reconfiguração do arquivo “grub.cfg” bastaria, mas pensando além, pode ser que o usuário tenha apagado algum arquivo importante para o grub, e o procedimento de reinstalação resolveria isso. Espero que o artigo seja útil.