proxmox:corrigir_grub_upgrade
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| proxmox:corrigir_grub_upgrade [2026/05/12 10:39] – criada admin | proxmox:corrigir_grub_upgrade [2026/05/12 10:41] (atual) – admin | ||
|---|---|---|---|
| Linha 1: | Linha 1: | ||
| - | ====== POP - Recuperação de Boot EFI/GRUB no Proxmox VE e Proxmox Backup Server ====== | + | ====== POP - Diagnóstico e Recuperação de Boot EFI/GRUB no Proxmox VE e Proxmox Backup Server ====== |
| ===== Objetivo ===== | ===== Objetivo ===== | ||
| - | Este procedimento operacional padrão (POP) tem como objetivo auxiliar na identificação e recuperação | + | Este POP tem como objetivo auxiliar |
| + | |||
| + | * Identificação | ||
| + | * Descoberta da estrutura de discos do ambiente | ||
| + | * Identificação de partições | ||
| + | * 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 VE | ||
| * Proxmox Backup Server | * Proxmox Backup Server | ||
| - | * Debian | + | * Debian |
| - | * Ambientes RAID1 (mdadm) | + | * RAID mdadm |
| - | * Ambientes | + | * ZFS |
| + | * EXT4 | ||
| + | * UEFI | ||
| - | Problemas de boot podem ocorrer após: | + | ===== Cenários Comuns ===== |
| - | * Atualizações de kernel | + | * Sistema não sobe após upgrade |
| - | * Atualizações do Proxmox | + | |
| - | * Falhas de energia | + | |
| - | * Corrupção de EFI | + | |
| - | * Falha de discos | + | |
| - | * Atualizações incompletas | + | |
| - | * Problemas em initramfs | + | |
| - | * Inconsistências no GRUB | + | |
| - | + | ||
| - | ===== Sintomas Comuns ===== | + | |
| - | + | ||
| - | * Sistema não inicia | + | |
| - | * Tela preta após BIOS/UEFI | + | |
| - | * Mensagem '' | + | |
| * Kernel panic | * Kernel panic | ||
| - | * Boot loop | + | * GRUB corrompido |
| - | * Sistema entra apenas em rescue mode | + | * Loop de boot |
| - | * Erro de EFI/bootloader | + | * Boot travado |
| - | * Falha após atualização do Proxmox | + | * "No bootable device" |
| + | * Erro de EFI | ||
| + | * Sistema inicia apenas em rescue | ||
| + | * Ambiente inacessível | ||
| ===== Pré-requisitos ===== | ===== Pré-requisitos ===== | ||
| - | * Acesso | + | * Acesso |
| * Acesso root | * Acesso root | ||
| - | * Conhecimento básico | + | * Conhecimento básico Linux |
| * Backup recomendado | * Backup recomendado | ||
| ===== 1. Identificando Estrutura do Ambiente ===== | ===== 1. Identificando Estrutura do Ambiente ===== | ||
| - | ==== Verificar | + | ===== Listar |
| <code bash> | <code bash> | ||
| Linha 48: | Linha 51: | ||
| </ | </ | ||
| - | ==== Identificar | + | ===== Exemplo ===== |
| + | |||
| + | < | ||
| + | NAME SIZE TYPE | ||
| + | sda 5.5T disk | ||
| + | sdb 5.5T disk | ||
| + | sdc 5.5T disk | ||
| + | sdd 5.5T disk | ||
| + | nvme0n1 | ||
| + | nvme1n1 | ||
| + | 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 | ||
| <code bash> | <code bash> | ||
| Linha 54: | Linha 81: | ||
| </ | </ | ||
| - | ==== Validar arrays | + | ===== Exemplos Importantes ===== |
| + | |||
| + | ==== EFI ===== | ||
| + | |||
| + | < | ||
| + | TYPE=" | ||
| + | LABEL=" | ||
| + | </ | ||
| + | |||
| + | ==== RAID ===== | ||
| + | |||
| + | < | ||
| + | TYPE=" | ||
| + | </ | ||
| + | |||
| + | ==== ROOT ===== | ||
| + | |||
| + | < | ||
| + | LABEL=" | ||
| + | TYPE=" | ||
| + | </ | ||
| + | |||
| + | ==== BOOT ===== | ||
| + | |||
| + | < | ||
| + | LABEL=" | ||
| + | TYPE=" | ||
| + | </ | ||
| + | |||
| + | ==== ZFS ===== | ||
| + | |||
| + | < | ||
| + | TYPE=" | ||
| + | </ | ||
| + | |||
| + | ===== 2. Descobrindo Onde Está o Sistema Operacional ===== | ||
| + | |||
| + | ===== Estrutura mais comum em RAID1 ===== | ||
| + | |||
| + | ^ Partição ^ Função ^ | ||
| + | | /dev/md3 | Root do sistema | | ||
| + | | /dev/md2 | /boot | | ||
| + | | / | ||
| + | | / | ||
| + | |||
| + | ===== Identificando ROOT ===== | ||
| + | |||
| + | Normalmente: | ||
| + | |||
| + | < | ||
| + | LABEL=" | ||
| + | TYPE=" | ||
| + | </ | ||
| + | |||
| + | ===== Identificando BOOT ===== | ||
| + | |||
| + | Normalmente: | ||
| + | |||
| + | < | ||
| + | LABEL=" | ||
| + | TYPE=" | ||
| + | </ | ||
| + | |||
| + | ===== Identificando EFI ===== | ||
| + | |||
| + | Normalmente: | ||
| + | |||
| + | < | ||
| + | TYPE=" | ||
| + | </ | ||
| + | |||
| + | ===== Identificando Storage ZFS ===== | ||
| + | |||
| + | Exemplo: | ||
| + | |||
| + | < | ||
| + | /dev/sda1 | ||
| + | /dev/sdb1 | ||
| + | /dev/sdc1 | ||
| + | /dev/sdd1 | ||
| + | </ | ||
| + | |||
| + | ===== 3. Validando RAID ===== | ||
| + | |||
| + | ===== Verificar status ===== | ||
| <code bash> | <code bash> | ||
| Linha 60: | Linha 171: | ||
| </ | </ | ||
| - | ==== Verificar pools ZFS ==== | + | ===== Resultado esperado ===== |
| + | |||
| + | < | ||
| + | md3 : active raid1 | ||
| + | md2 : active raid1 | ||
| + | </ | ||
| + | |||
| + | ===== Ver detalhes ===== | ||
| + | |||
| + | <code bash> | ||
| + | mdadm --detail --scan | ||
| + | </ | ||
| + | |||
| + | ===== Ver array específico ===== | ||
| + | |||
| + | <code bash> | ||
| + | mdadm --detail /dev/md3 | ||
| + | </ | ||
| + | |||
| + | ===== Se RAID não subir ===== | ||
| + | |||
| + | <code bash> | ||
| + | mdadm --assemble --scan | ||
| + | </ | ||
| + | |||
| + | ===== 4. Validando | ||
| + | |||
| + | ===== Descobrir pools ===== | ||
| <code bash> | <code bash> | ||
| Linha 66: | Linha 204: | ||
| </ | </ | ||
| - | ===== Estruturas Mais Comuns | + | ===== Importar pool ===== |
| - | ==== Ambiente RAID1 EXT4 ==== | + | <code bash> |
| + | zpool import -f NOME_DO_POOL | ||
| + | </ | ||
| - | Exemplo: | + | ===== Verificar status ===== |
| - | ^ Partição ^ Função ^ | + | <code bash> |
| - | | /dev/md2 | /boot | | + | zpool status |
| - | | /dev/md3 | / | | + | </code> |
| - | | / | + | |
| - | | /dev/nvme1n1p1 | EFI | | + | |
| - | ==== Ambiente ZFS Root ===== | + | ===== Ver datasets |
| - | Exemplo: | + | <code bash> |
| + | zfs list | ||
| + | </ | ||
| - | ^ Pool ^ Função ^ | + | ===== Interpretação ===== |
| - | | rpool | Sistema operacional | | + | |
| - | | bpool | Boot | | + | |
| - | | EFI | Partição EFI | | + | |
| - | ===== 2. Validando | + | Se o pool aparecer como: |
| - | ==== Verificar se o ambiente | + | < |
| + | ONLINE | ||
| + | </ | ||
| + | |||
| + | Há forte indicativo de integridade do storage. | ||
| + | |||
| + | ===== 5. Validando UEFI ===== | ||
| + | |||
| + | ===== Verificar se sistema | ||
| <code bash> | <code bash> | ||
| ls / | ls / | ||
| </ | </ | ||
| + | |||
| + | ===== Interpretação ===== | ||
| Se existir conteúdo: | Se existir conteúdo: | ||
| - | * Sistema | + | * Ambiente |
| - | ===== 3. Montando o Sistema | + | ===== 6. Montando o Ambiente |
| - | ==== Montar | + | ===== Montar |
| - | Exemplo | + | Exemplo: |
| <code bash> | <code bash> | ||
| Linha 109: | Linha 256: | ||
| </ | </ | ||
| - | ==== Montar | + | ===== Montar |
| <code bash> | <code bash> | ||
| Linha 116: | Linha 263: | ||
| </ | </ | ||
| - | ==== Montar EFI ===== | + | ===== Montar EFI ===== |
| <code bash> | <code bash> | ||
| Linha 123: | Linha 270: | ||
| </ | </ | ||
| - | ===== 4. Preparando Chroot ===== | + | ===== 7. Preparando Chroot ===== |
| - | ==== Montar pseudo-filesystems ===== | + | ===== Montar pseudo-filesystems ===== |
| <code bash> | <code bash> | ||
| Linha 134: | Linha 281: | ||
| </ | </ | ||
| - | ==== Entrar no ambiente ===== | + | ===== Entrar no ambiente ===== |
| <code bash> | <code bash> | ||
| Linha 140: | Linha 287: | ||
| </ | </ | ||
| - | ===== 5. Reinstalando o GRUB EFI ===== | + | ===== 8. Validando Estrutura |
| - | ==== Reinstalação padrão | + | ===== Verificar conteúdo |
| <code bash> | <code bash> | ||
| - | grub-install --target=x86_64-efi --efi-directory=/ | + | ls -R /boot/efi |
| </ | </ | ||
| - | ===== 6. Regenerando Configurações | + | ===== Estrutura esperada |
| - | ==== Atualizar configuração do GRUB ===== | + | < |
| + | / | ||
| + | </ | ||
| - | < | + | ===== Arquivos esperados ===== |
| - | update-grub | + | |
| + | < | ||
| + | grubx64.efi | ||
| + | shimx64.efi | ||
| + | grub.cfg | ||
| </ | </ | ||
| - | ==== Regenerar initramfs | + | ===== 9. Corrigindo GRUB EFI ===== |
| + | |||
| + | ===== Reinstalar GRUB ===== | ||
| <code bash> | <code bash> | ||
| - | update-initramfs | + | grub-install |
| </ | </ | ||
| - | ===== 7. Validando Estrutura EFI ===== | + | ===== Possível Warning |
| - | ==== Verificar arquivos EFI ===== | + | < |
| + | EFI variables cannot be set on this system | ||
| + | </ | ||
| + | |||
| + | ===== Interpretação ===== | ||
| + | |||
| + | Comum em Rescue Systems. | ||
| + | Não impede funcionamento do boot. | ||
| + | |||
| + | ===== Atualizar configuração | ||
| <code bash> | <code bash> | ||
| - | ls -R /boot/efi | + | update-grub |
| </ | </ | ||
| - | Estrutura esperada: | + | ===== Regenerar initramfs ===== |
| + | |||
| + | <code bash> | ||
| + | update-initramfs -u -k all | ||
| + | </ | ||
| + | |||
| + | ===== Possível Warning ===== | ||
| < | < | ||
| - | /boot/efi/EFI/proxmox | + | No /etc/kernel/proxmox-boot-uuids found |
| - | /boot/ | + | |
| </ | </ | ||
| - | ===== 8. Criando Fallback EFI ===== | + | ===== Interpretação |
| + | |||
| + | Pode ocorrer em ambientes sem proxmox-boot-tool. | ||
| - | Alguns servidores não gravam corretamente variáveis EFI na NVRAM. | + | ===== 10. Criando Fallback EFI ===== |
| - | Nestes casos é recomendado criar fallback | + | Alguns servidores/ |
| - | ==== Criar estrutura ===== | + | ===== Criar estrutura ===== |
| <code bash> | <code bash> | ||
| Linha 189: | Linha 360: | ||
| </ | </ | ||
| - | ==== Copiar loader | + | ===== Criar fallback |
| Recomendado: | Recomendado: | ||
| Linha 197: | Linha 368: | ||
| </ | </ | ||
| - | Alternativa: | + | ===== Alternativa |
| <code bash> | <code bash> | ||
| Linha 203: | Linha 374: | ||
| </ | </ | ||
| - | ===== 9. Ambientes com ZFS ===== | + | ===== 11. Validando Discos |
| - | ==== Validar pools ===== | + | ===== Instalar smartmontools |
| <code bash> | <code bash> | ||
| - | zpool status | + | apt install smartmontools -y |
| </ | </ | ||
| - | ==== Importar pool manualmente | + | ===== Verificar disco ===== |
| <code bash> | <code bash> | ||
| - | zpool import | + | smartctl |
| </ | </ | ||
| - | ==== Validar | + | ===== Validar |
| + | |||
| + | * Reallocated_Sector_Ct | ||
| + | * Current_Pending_Sector | ||
| + | * Offline_Uncorrectable | ||
| + | * Erros ATA | ||
| + | |||
| + | ===== 12. Validando Espaço ===== | ||
| + | |||
| + | ===== Verificar utilização | ||
| <code bash> | <code bash> | ||
| - | zfs list | + | df -h |
| + | </ | ||
| + | |||
| + | ===== Validar especialmente ===== | ||
| + | |||
| + | * / | ||
| + | * /boot | ||
| + | * datastore | ||
| + | * storage ZFS | ||
| + | |||
| + | ===== 13. Logs e Diagnóstico ===== | ||
| + | |||
| + | ===== Ver logs do boot ===== | ||
| + | |||
| + | <code bash> | ||
| + | journalctl -xb | ||
| + | </ | ||
| + | |||
| + | ===== Ver mensagens do kernel ===== | ||
| + | |||
| + | <code bash> | ||
| + | dmesg | ||
| + | </ | ||
| + | |||
| + | ===== Ver erros críticos ===== | ||
| + | |||
| + | <code bash> | ||
| + | journalctl -p 3 -xb | ||
| + | </ | ||
| + | |||
| + | ===== 14. Serviços Proxmox ===== | ||
| + | |||
| + | ===== Proxmox VE ===== | ||
| + | |||
| + | <code bash> | ||
| + | systemctl status pveproxy | ||
| + | systemctl status pvedaemon | ||
| + | systemctl status pvestatd | ||
| + | </ | ||
| + | |||
| + | ===== Proxmox Backup Server ===== | ||
| + | |||
| + | <code bash> | ||
| + | systemctl status proxmox-backup | ||
| + | systemctl status proxmox-backup-proxy | ||
| + | </ | ||
| + | |||
| + | ===== 15. Rede ===== | ||
| + | |||
| + | ===== Interfaces ===== | ||
| + | |||
| + | <code bash> | ||
| + | ip a | ||
| + | </ | ||
| + | |||
| + | ===== Rotas ===== | ||
| + | |||
| + | <code bash> | ||
| + | ip route | ||
| + | </ | ||
| + | |||
| + | ===== DNS ===== | ||
| + | |||
| + | <code bash> | ||
| + | cat / | ||
| </ | </ | ||
| - | ===== 10. Finalização ===== | + | ===== 16. Finalização ===== |
| - | ==== Sair do chroot ===== | + | ===== Sair do chroot ===== |
| <code bash> | <code bash> | ||
| Linha 231: | Linha 475: | ||
| </ | </ | ||
| - | ==== Desmontar ambiente ===== | + | ===== Desmontar ambiente ===== |
| <code bash> | <code bash> | ||
| Linha 237: | Linha 481: | ||
| </ | </ | ||
| - | ==== Reiniciar ===== | + | ===== Reiniciar ===== |
| <code bash> | <code bash> | ||
| Linha 243: | Linha 487: | ||
| </ | </ | ||
| - | ===== 11. Problemas Comuns ===== | + | ===== 17. Problemas Comuns ===== |
| - | ==== "EFI variables cannot be set on this system" | + | ===== Sistema continua entrando em Rescue |
| - | Normal em ambientes rescue/live Linux. | + | Verificar: |
| - | Não impede funcionamento do boot. | + | * Rescue mode desabilitado |
| + | * ISO virtual removida | ||
| + | * Ordem de boot correta | ||
| + | * Disco correto configurado | ||
| - | ===== "No / | + | ===== Pool ZFS não importa |
| - | Pode ocorrer em ambientes sem proxmox-boot-tool. | + | Executar: |
| - | Não necessariamente indica falha. | + | <code bash> |
| + | zpool import -f NOME_DO_POOL | ||
| + | </ | ||
| - | ===== Sistema continua entrando em rescue | + | ===== RAID degradado |
| Verificar: | Verificar: | ||
| - | * Modo rescue desabilitado no provedor | + | <code bash> |
| - | * Ordem de boot da BIOS/UEFI | + | cat / |
| - | * Disco correto selecionado | + | </ |
| - | * ISO virtual removida | + | |
| + | ===== Kernel não encontrado ===== | ||
| + | |||
| + | Verificar: | ||
| + | |||
| + | <code bash> | ||
| + | ls /boot | ||
| + | </code> | ||
| + | |||
| + | ===== EFI vazia ===== | ||
| + | |||
| + | Reinstalar GRUB. | ||
| + | |||
| + | ===== Sem espaço em /boot ===== | ||
| + | |||
| + | Remover kernels antigos. | ||
| - | ===== 12. Recomendações | + | ===== 18. Boas Práticas |
| - | * Manter | + | * Manter |
| + | * Validar SMART periodicamente | ||
| * Validar RAID periodicamente | * Validar RAID periodicamente | ||
| - | * Validar | + | * Validar |
| - | * Testar | + | * Testar |
| - | * Manter | + | * Manter |
| - | * Validar | + | * Possuir backup externo |
| - | * Validar status do ZFS após upgrades | + | * Monitorar |
| - | ===== 13. Comandos | + | ===== 19. Comandos |
| - | ==== Status | + | ===== Discos ===== |
| + | |||
| + | <code bash> | ||
| + | lsblk | ||
| + | fdisk -l | ||
| + | blkid | ||
| + | </ | ||
| + | |||
| + | ===== RAID ===== | ||
| <code bash> | <code bash> | ||
| Linha 285: | Linha 558: | ||
| </ | </ | ||
| - | ==== Status | + | ===== EFI ===== |
| <code bash> | <code bash> | ||
| Linha 291: | Linha 564: | ||
| </ | </ | ||
| - | ==== Status | + | ===== ZFS ===== |
| <code bash> | <code bash> | ||
| zpool status | zpool status | ||
| + | zpool import | ||
| zfs list | zfs list | ||
| </ | </ | ||
| - | ==== Espaço | + | ===== Espaço ===== |
| <code bash> | <code bash> | ||
| Linha 304: | Linha 578: | ||
| </ | </ | ||
| - | ==== Kernels instalados | + | ===== SMART ===== |
| <code bash> | <code bash> | ||
| - | ls /boot | + | smartctl -a /dev/sda |
| + | </ | ||
| + | |||
| + | ===== Logs ===== | ||
| + | |||
| + | <code bash> | ||
| + | journalctl -xb | ||
| + | dmesg | ||
| </ | </ | ||
proxmox/corrigir_grub_upgrade.1778593155.txt.gz · Última modificação: por admin
