Recuperando o Grub no Debian
De vez em quando pode ocorrer da máquina do usuário ficar sem o boot, normalmente devido aos "testes de desempenho" que muitas vezes o próprio usuário faz para conseguir mais desempenho frente ao que o hardware pode entregar na configuração padrão do sistema; eu mesmo sou um desses usuários que tenta tirar água de pedra do meu equipamento e os procedimentos e resultados - bons e ruins - coloco no meu canal do Youtube.
Para fazer a recuperação do Debian e agregados há a necessidade de usar um liveusb de uma distro baseada nele ou até mesmo o liveusb de instalação do próprio Debian. Aqui vou mostrar como fazer isso a partir de um liveusb, dá pra baixar uma ISO dessas com Gnome ou outra interface gráfica plenamente funcional no site do Debian.
Basta criar o pendrive butável, dar boot na máquina por ele, abrir o Terminal e seguir a sequência de comandos abaixo, primeiro para máquinas MBR. Vamos descobrir qual a (ou as) partição presente no disco:sudo fidsk -l
sudo fdisk -l
[sudo] senha para sidserra:
Disco /dev/sda: 465,76 GiB, 500107862016 bytes, 976773168 setores
Modelo de disco: ST500LM012 HN-M5
Unidades: setor de 1 * 512 = 512 bytes
Tamanho de setor (lógico/físico): 512 bytes / 4096 bytes
Tamanho E/S (mínimo/ótimo): 4096 bytes / 4096 bytes
Tipo de rótulo do disco: dos
Identificador do disco: 0xf149afa4
Dispositivo Inicializar Início Fim Setores Tamanho Id Tipo
/dev/sda1 * 2048 976773119 976771072 465,8G 83 Linux
Veja que o disco acima só tem uma partição (/dev/sda1) inteira para o sistema e para a pasta do usuário.
sudo mount /dev/sdXY /mnt
sudo mount /dev/sdXZ /mnt/boot # somente se existir /boot separada
Vamos ver como ficaria no disco mostrado mais acima:
sudo mount /dev/sda1 # só tem um disco e uma partição e é MBR
Veja que "sdXY" e "sdXZ" são, respectivamente, a PARTIÇÃO do sistema (/) e de boot MAS só se ela (a de boot) existir de forma separada.
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
grub-install --target=i386-pc /dev/sdX # mude /dev/sdX para /dev/sda, /dev/sdb de acordo com o comando fdisk
Atenção que /dev/sdX é o DISCO onde o sistema está instalado e não a partição. Essa última linha no nosso disco de teste ficaria então:
grub-install --target=i386-pc /dev/sda
update-grub
exit
sudo umount -R /mnt
sudo reboot
Veja se o boot da mesma voltou - provavelmente sim. Agora vamos ver para sistemas GPT/UEFI. As recomendações de sda, sdb, sda1 e tal seguem a mesma lógica.
sudo mount /dev/sdXY /mnt
sudo mount /dev/sdXZ /mnt/boot # somente se existir /boot separada
sudo mount /dev/sdXW /mnt/boot/efi # partição EFI (FAT32)
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
grub-install \
--target=x86_64-efi \
--efi-directory=/boot/efi \
--bootloader-id=Debian
update-grub
exit
sudo umount -R /mnt
sudo reboot
Reinicie a máquina e provavelmente o boot da mesma será restaurado. Pode ocorrer de você ter dois sistemas instalados no mesmo disco e o modo mais fácil é instalar o os-prober e depois rodar o comando:
apt install os-prober
update-grub
Nesse caso NÃO É para usar exit, sudo umount -R /mnt e reboot pois o disco de sistema precisa estar instalado e montado já que esse pacote vai ser instalado no sistema que se quer recuperar. O OS-Prober normalmente vem desabilitado, então vamos habilitá-lo - novamente o sistema afetado tem que estar montado:
sudo nano /etc/default/grub
GRUB_DISABLE_OS_PROBER=false # se a linha estiver true, mude para false
Salve com CTRL + O e feche com CTRL + X e depois:
sudo update-grub
E agora sim:
exit
sudo umount -R /mnt
sudo reboot
Seu sistema estará de volta com outros eventuais que você tenha na máquina.

Nenhum comentário:
Postar um comentário