====== 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