Tabela de conteúdos

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