====== POP - Diagnóstico e Recuperação de Boot EFI/GRUB no Proxmox VE e Proxmox Backup Server ====== ===== Objetivo ===== Este POP tem como objetivo auxiliar administradores na: * Identificação de falhas de boot * Descoberta da estrutura de discos do ambiente * Identificação de partições EFI * Identificação de RAID/ZFS * Descoberta do local do sistema operacional * Recuperação do GRUB/EFI * Recuperação pós-upgrade * Recuperação após falhas de boot Compatível com: * Proxmox VE * Proxmox Backup Server * Debian * RAID mdadm * ZFS * EXT4 * UEFI ===== Cenários Comuns ===== * Sistema não sobe após upgrade * Kernel panic * GRUB corrompido * Loop de boot * Boot travado * "No bootable device" * Erro de EFI * Sistema inicia apenas em rescue * Ambiente inacessível após atualização do Proxmox ===== Pré-requisitos ===== * Acesso ao Rescue System ou Live Linux * Acesso root * Conhecimento básico Linux * Backup recomendado ===== 1. Identificando Estrutura do Ambiente ===== ===== Listar discos ===== lsblk ===== Exemplo ===== NAME SIZE TYPE sda 5.5T disk sdb 5.5T disk sdc 5.5T disk sdd 5.5T disk nvme0n1 476G disk nvme1n1 476G disk md2 1G raid1 md3 450G raid1 ===== Como interpretar ===== ^ Estrutura ^ Interpretação ^ | HDDs grandes | Geralmente storage ZFS | | SSD/NVMe menores | Geralmente sistema operacional | | mdX | RAID mdadm | | zfs_member | Disco pertencente ao pool ZFS | | vfat | Partição EFI | | ext4 | Sistema Linux | ===== Identificar partições ===== blkid ===== Exemplos Importantes ===== ==== EFI ===== TYPE="vfat" LABEL="EFI_SYSPART" ==== RAID ===== TYPE="linux_raid_member" ==== ROOT ===== LABEL="root" TYPE="ext4" ==== BOOT ===== LABEL="boot" TYPE="ext4" ==== ZFS ===== TYPE="zfs_member" ===== 2. Descobrindo Onde Está o Sistema Operacional ===== ===== Estrutura mais comum em RAID1 ===== ^ Partição ^ Função ^ | /dev/md3 | Root do sistema | | /dev/md2 | /boot | | /dev/nvme0n1p1 | EFI principal | | /dev/nvme1n1p1 | EFI secundária | ===== Identificando ROOT ===== Normalmente: LABEL="root" TYPE="ext4" ===== Identificando BOOT ===== Normalmente: LABEL="boot" TYPE="ext4" ===== Identificando EFI ===== Normalmente: TYPE="vfat" ===== Identificando Storage ZFS ===== Exemplo: /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 ===== 3. Validando RAID ===== ===== Verificar status ===== cat /proc/mdstat ===== Resultado esperado ===== md3 : active raid1 md2 : active raid1 ===== Ver detalhes ===== mdadm --detail --scan ===== Ver array específico ===== mdadm --detail /dev/md3 ===== Se RAID não subir ===== mdadm --assemble --scan ===== 4. Validando ZFS ===== ===== Descobrir pools ===== zpool import ===== Importar pool ===== zpool import -f NOME_DO_POOL ===== Verificar status ===== zpool status ===== Ver datasets ===== zfs list ===== Interpretação ===== Se o pool aparecer como: ONLINE Há forte indicativo de integridade do storage. ===== 5. Validando UEFI ===== ===== Verificar se sistema usa UEFI ===== ls /sys/firmware/efi ===== Interpretação ===== Se existir conteúdo: * Ambiente utiliza UEFI ===== 6. Montando o Ambiente ===== ===== Montar ROOT ===== Exemplo: mount /dev/md3 /mnt ===== Montar BOOT ===== mkdir -p /mnt/boot mount /dev/md2 /mnt/boot ===== Montar EFI ===== mkdir -p /mnt/boot/efi mount /dev/nvme0n1p1 /mnt/boot/efi ===== 7. Preparando Chroot ===== ===== Montar pseudo-filesystems ===== mount --bind /dev /mnt/dev mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys mount --bind /run /mnt/run ===== Entrar no ambiente ===== chroot /mnt ===== 8. Validando Estrutura EFI ===== ===== Verificar conteúdo ===== ls -R /boot/efi ===== Estrutura esperada ===== /boot/efi/EFI/proxmox ===== Arquivos esperados ===== grubx64.efi shimx64.efi grub.cfg ===== 9. Corrigindo GRUB EFI ===== ===== Reinstalar GRUB ===== grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=proxmox ===== Possível Warning ===== EFI variables cannot be set on this system ===== Interpretação ===== Comum em Rescue Systems. Não impede funcionamento do boot. ===== Atualizar configuração ===== update-grub ===== Regenerar initramfs ===== update-initramfs -u -k all ===== Possível Warning ===== No /etc/kernel/proxmox-boot-uuids found ===== Interpretação ===== Pode ocorrer em ambientes sem proxmox-boot-tool. ===== 10. Criando Fallback EFI ===== Alguns servidores/provedores não gravam corretamente EFI na NVRAM. ===== Criar estrutura ===== mkdir -p /boot/efi/EFI/BOOT ===== Criar fallback ===== Recomendado: cp /boot/efi/EFI/proxmox/shimx64.efi /boot/efi/EFI/BOOT/BOOTX64.EFI ===== Alternativa ===== cp /boot/efi/EFI/proxmox/grubx64.efi /boot/efi/EFI/BOOT/BOOTX64.EFI ===== 11. Validando Discos ===== ===== Instalar smartmontools ===== apt install smartmontools -y ===== Verificar disco ===== smartctl -a /dev/sda ===== Validar ===== * Reallocated_Sector_Ct * Current_Pending_Sector * Offline_Uncorrectable * Erros ATA ===== 12. Validando Espaço ===== ===== Verificar utilização ===== df -h ===== Validar especialmente ===== * / * /boot * datastore * storage ZFS ===== 13. Logs e Diagnóstico ===== ===== Ver logs do boot ===== journalctl -xb ===== Ver mensagens do kernel ===== dmesg ===== Ver erros críticos ===== journalctl -p 3 -xb ===== 14. Serviços Proxmox ===== ===== Proxmox VE ===== systemctl status pveproxy systemctl status pvedaemon systemctl status pvestatd ===== Proxmox Backup Server ===== systemctl status proxmox-backup systemctl status proxmox-backup-proxy ===== 15. Rede ===== ===== Interfaces ===== ip a ===== Rotas ===== ip route ===== DNS ===== cat /etc/resolv.conf ===== 16. Finalização ===== ===== Sair do chroot ===== exit ===== Desmontar ambiente ===== umount -R /mnt ===== Reiniciar ===== reboot ===== 17. Problemas Comuns ===== ===== Sistema continua entrando em Rescue ===== Verificar: * Rescue mode desabilitado * ISO virtual removida * Ordem de boot correta * Disco correto configurado ===== Pool ZFS não importa ===== Executar: zpool import -f NOME_DO_POOL ===== RAID degradado ===== Verificar: cat /proc/mdstat ===== Kernel não encontrado ===== Verificar: ls /boot ===== EFI vazia ===== Reinstalar GRUB. ===== Sem espaço em /boot ===== Remover kernels antigos. ===== 18. Boas Práticas ===== * Manter múltiplas EFI * Validar SMART periodicamente * Validar RAID periodicamente * Validar boot após upgrades * Testar recovery * Manter documentação da estrutura do ambiente * Possuir backup externo * Monitorar espaço em /boot ===== 19. Comandos Rápidos ===== ===== Discos ===== lsblk fdisk -l blkid ===== RAID ===== cat /proc/mdstat mdadm --detail --scan ===== EFI ===== efibootmgr -v ===== ZFS ===== zpool status zpool import zfs list ===== Espaço ===== df -h ===== SMART ===== smartctl -a /dev/sda ===== Logs ===== journalctl -xb dmesg ===== Referências ===== * https://pve.proxmox.com/wiki/Host_Bootloader * https://pbs.proxmox.com/docs/ * https://wiki.debian.org/UEFI