[TUTORIAL]Reparando GRUB EFI Fedora 33[TUTORIAL]

tallescg
editado janeiro 2021 em Tutoriais

Olá, sei que ando menos ativo na comunidade por conta do trabalho, mas sempre que posso tento compartilhar meu pouco conhecimento.

Dias atrás precisei instalar meu SSD em um notebbok HP Pavilion 15 ( Irlândes sério!) que comprei por um bom preço para devolver o note de minha esposa. Não sei se fiz algo errado durante o processo ou foi um update do janelas em dualboot, mas perdi o grub e tentei todo aquele processo conhecido de recuperação do grub por meio de chroot.

O problema é que sempre ao gerar o grub cfg, ou reinstalar o grub na partição EFI, o processo não acusava erros, mas ao rebootar não funcionava.

Após quase um domingo todo estudando e pesquisando sobre o processo,
descobri que no fedor, para instalações UEFI, vc NÃO pode instalar/reinstalar o grub2 com o comando grub2-install. Essa informação pode ser verificada aqui.

Para reparar o grub em modo EFI então usei uma ISO do Fedora Everything, acessei o menu troubleshooting, e iniciei o rescue.

Ao iniciar a recuperação, vc tem a opção de automaticamente detectar, montar e fazer todo processo de bind do sistema em seu HD, basta digitar 1 dar enter para continuar com o processo de chroot. Ao fim basta vc dar enter para entrar no shell e usar chroot /mnt/sysroot para ter acesso ao seu sistema ( lembre-se de estar com um cabo de rede para facilmente ter acesso a internet ao iniciar o boot).

Estando em chroot, vamos garantir que vc vai instalar os arquivos corretamente apagando a pasta fedora da EFI:
Usamos um LS para certificar que o /efi está montado.

ls /boot/efi/EFI/fedora

Em seguida podemos apagar todo o conteúdo da pasta fedora em EFI:

rm -r /boot/efi/EFI/fedora

Agora vamos criar novamente os arquivos corretos reinstalando os devidos pacotes:

dnf reinstall grub2-efi shim os-prober

Apague as entradas de boot EFI com o nome fedora que possam existir, para isso use efibootmgr para listar as entradas:

Para apagar a entrada desejada use:

efibootmgr -b XXXX -B

(Onde XXXX é a numeração da entrada Boot; ex: Boot0004 = efibootmgr -b 0004 -B)

Agora vamos adicionar FEDORA a lista de gerenciadores de boot EFI reconhecidos no SETUP:

efibootmgr -c -d /dev/sda -p 1 -w -L FEDORA -l '/EFI/fedora/shim64.efi'

(Onde /dev/sda é o disco onde está a partição EFI; -p 1 indica o número da partição EFI, que no caso é sda1; FEDORA é nome da entrada, por padrão o sistema usa fedora mas preferi FEDORA pra destacar no tutorial; e '/EFI/fedora/shim64.efi' indica o arquivo loader a ser carregado)

Agora vc atualiza as configurações do grub:

grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Agora basta sair do chroot com exit e usar reboot para reiniciar.
Lembre-se, NÃO USE O COMANDO GRUB2-INSTALL NESSA SITUAÇÃO e remova o disco de boot/pendrive assim que a máquina reiniciar.

Espero ter ajudado, abraços!!!!

Comentários

  • Obrigado pela ajuda. No Fedora 34 o comando tem que ser :

    efibootmgr -c -d /dev/sda -p 2 -w -L FEDORA -l '/EFI/fedora/shimx64.efi'

    No meu caso -p 2 (EFI na partição 2) e digitei: ls /boot/efi/EFI/fedora e apareceu shimx64.efi invés de shim64.efi. Aí o grub voltou.