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/fstabe ogrub.cfgcomupdate-grubapós montar corretamente as partições; - Windows Boot Manager sumiu do menu — rode
os-probermanualmente e depoisupdate-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.