Boot · Recuperação Linux

Recuperação do GRUB e Boot Linux: UEFI, GPT, Live CD e Conversão de Máquinas Virtuais

Um guia direto ao ponto para reparar o GRUB depois de um dual-boot quebrado, entender partições em UEFI/GPT, recuperar sistemas via Live CD, migrar VMs de Hyper-V para XCP-NG, e ainda dicas de monitoramento com Netdata, backup e hardening básico em Ubuntu — incluindo referências ao processo Linux From Scratch para quem quer entender o boot de dentro para fora.

Entendendo o boot em UEFI/GPT

Em sistemas modernos, o disco usa tabela de partição GPT e o firmware UEFI carrega o bootloader a partir de uma partição especial chamada EFI System Partition (ESP), geralmente formatada em FAT32 e montada em /boot/efi. O GRUB para UEFI grava seus arquivos .efi nessa partição, diferente do BIOS legado, que grava o estágio inicial diretamente no MBR do disco.

Para verificar a estrutura das partições:

lsblk -f
fdisk -l /dev/sda
parted /dev/sda print

A ESP deve ter a flag boot,esp ativa, visível no parted como boot, esp na coluna de flags.

Recuperando o GRUB com Live CD

Quando o GRUB não carrega (tela preta, "grub rescue>" ou erro de "no such partition"), o caminho mais confiável é iniciar por um Live CD/USB (Ubuntu Live é o mais comum) e fazer o chroot no sistema instalado:

sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt

Dentro do chroot, reinstale o GRUB apontando para o disco (não para a partição):

# BIOS legado
grub-install /dev/sda

# UEFI
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu

update-grub

Saia do chroot, desmonte tudo na ordem inversa e reinicie:

exit
sudo umount -R /mnt
sudo reboot

Erros comuns e como resolver

  • error: no such device / UUID — normalmente causado por troca de disco ou snapshot restaurado; regenere o /etc/fstab e o grub.cfg com update-grub após montar corretamente as partições;
  • Windows Boot Manager sumiu do menu — rode os-prober manualmente e depois update-grub:
sudo apt install os-prober
sudo os-prober
sudo update-grub

Em versões recentes do GRUB, pode ser necessário habilitar o os-prober explicitamente em /etc/default/grub:

GRUB_DISABLE_OS_PROBER=false

Conversão de máquinas virtuais: Hyper-V para XCP-NG

Migrar VMs do Hyper-V (formato VHD/VHDX) para o XCP-NG exige conversão do disco para VHD fixo (não dinâmico) e depois importação via Xen Orchestra ou linha de comando:

# No Hyper-V (PowerShell), converter VHDX dinâmico em fixo
Convert-VHD -Path "C:\VMs\servidor.vhdx" -DestinationPath "C:\VMs\servidor-fixed.vhd" -VHDType Fixed

# Importar no XCP-NG via xe CLI
xe vm-import filename=/mnt/nfs/servidor-fixed.vhd

Após a importação, é essencial remover o Integration Services do Hyper-V dentro do convidado e instalar o Xen guest tools/agent equivalente, além de ajustar o boot loader caso a VM use UEFI, já que o XCP-NG exige compatibilidade explícita de firmware (BIOS ou UEFI) definida na criação da VM. Verifique também se o /etc/fstab não referencia os discos por caminho físico (ex: /dev/sda1), preferindo UUID, pois a ordem dos discos pode mudar entre hipervisores.

Partição /boot separada e Linux From Scratch

Em servidores com múltiplos kernels ou LVM/criptografia no root, é recomendável manter uma partição /boot separada (ext4, sem LVM) para garantir que o GRUB sempre encontre o kernel e o initrd sem depender de drivers avançados de storage. Uma partição /boot típica tem entre 512 MB e 1 GB.

Para quem quer entender o processo de boot em detalhes — do MBR/GPT até o init — o projeto Linux From Scratch (LFS) é o melhor material didático disponível: ele guia a construção de um sistema Linux completo do zero, compilando toolchain, kernel e bootloader manualmente, o que expõe exatamente o que o GRUB, o initramfs e o systemd fazem em cada etapa.

Monitoramento com Netdata e rotina de backup

Após restaurar o boot, vale instalar monitoramento leve para acompanhar saúde do disco e da partição de boot:

curl -Ss https://my-netdata.io/kickstart.sh | sh

O Netdata expõe métricas em tempo real (porta 19999) incluindo espaço em /boot, latência de disco e uso de inodes — útil para prever problemas antes que o kernel novo não caiba mais na partição.

Complementarmente, mantenha backup do MBR/GPT e da tabela de partições antes de qualquer intervenção:

sudo sfdisk -d /dev/sda > backup_partition_table.txt
sudo dd if=/dev/sda of=mbr_backup.img bs=512 count=1

Ajustes finos no Ubuntu e monitoramento com Zabbix

Depois de estabilizar o boot, configure o Zabbix Agent para monitorar o servidor Ubuntu continuamente:

sudo apt install zabbix-agent2
sudo nano /etc/zabbix/zabbix_agent2.conf
# Server=IP_DO_ZABBIX
# ServerActive=IP_DO_ZABBIX
# Hostname=servidor-ubuntu
sudo systemctl enable --now zabbix-agent2

Combine isso com um template padrão "Linux by Zabbix agent" para alertas de espaço em disco, uso de swap e carga de CPU — sinais que, historicamente, antecedem problemas de boot por disco cheio ou kernel corrompido.

Recursos Adicionais

GRUB Linux UEFI XCP-NG Zabbix
GRUB Boot Linux UEFI Recuperação
← Voltar para o blog