Este guia apresenta práticas simples para aumentar a segurança do boot do seu sistema Linux, especialmente em cenários onde atualizações de kernel podem causar instabilidade.
O Debian é conhecido por ser extremamente conservador e cuidadoso com atualizações, reduzindo bastante o risco de problemas após upgrades. Já o Ubuntu e suas distribuições derivadas (Kubuntu, Xubuntu, Pop!_OS, etc.) tendem a incluir versões mais recentes de kernel com maior frequência — o que é ótimo para compatibilidade de hardware, mas pode ocasionalmente causar falhas no boot.
Para evitar dores de cabeça, recomendamos duas medidas fundamentais:
- Ativar um tempo de espera no GRUB (padrão no Debian, mas não no Ubuntu)
- Saber como remover kernels problemáticos e evitar reinstalação automática
O menu do GRUB permite escolher versões anteriores do kernel caso algo dê errado. No entanto, no Ubuntu esse menu geralmente fica oculto e inicia automaticamente.
Sem tempo de espera, você pode ficar preso em um sistema que não inicia corretamente.
Edite o arquivo de configuração:
sudo editor /etc/default/grubAjuste ou adicione as linhas:
GRUB_TIMEOUT=5
GRUB_RECORDFAIL_TIMEOUT=5
sudo update-grubAgora, ao iniciar o sistema:
- O menu do GRUB será exibido por 5 segundos
- Será possível escolher kernels antigos facilmente
- Em caso de falha, o GRUB continuará exibindo o menu
Após uma atualização, o sistema para de iniciar corretamente.
Solução: iniciar com um kernel antigo e remover o kernel defeituoso.
dpkg -l | grep '^ii' | grep linux-imageUma saida como esta será exibida:
ii linux-image-6.17.0-14-generic 6.17.0-14.14~24.04.1 amd64 Signed kernel image generic
ii linux-image-6.17.0-19-generic 6.17.0-19.19~24.04.2 amd64 Signed kernel image generic
ii linux-image-generic-hwe-24.04 6.17.0-19.19~24.04.2 amd64 Generic Linux kernel image
uname -rAtenção: nunca remova o kernel atualmente em uso.
Em nosso exemplo, demos boot com o kernel mais antigo, isto é, linux-image-6.17.0-14-generic para que seja possível remover o mais recente linux-image-6.17.0-19-generic assim sudo apt purge linux-image-6.x.x-xx-generic linux-headers-6.x.x-xx-generic. Em nosso exemnplo acima:
sudo apt purge linux-image-6.17.0-19-generic linux-headers-6.17.0-19-genericAcima, tem um preciosismo da minha parte, porque se você remover apenas linux-image-6.17.0-19-generic, o pacote linux-headers-6.17.0-19-generic também seria removido.
sudo update-grubNo Ubuntu, kernels são gerenciados por meta-pacotes como:
linux-image-generic
linux-image-generic-hwe-24.04
Esses pacotes sempre puxam versões mais novas automaticamente.
Se você não fizer nada, o kernel problemático pode voltar na próxima atualização.
dpkg -l | grep linux-image-genericsudo apt-mark hold linux-image-generic linux-image-generic-hwe-24.04apt-mark showholdE então será listado todos os pacotes que você tenha congelado e caso seja seguro "descongelar" algum deles, poderá fazê-lo como no exemplo a seguir onde desconhgelo novamente nossa atualização de kernel:
sudo apt-mark unhold linux-image-generic linux-image-generic-hwe-24.04- O sistema não instalará novos kernels automaticamente
- Você terá controle manual sobre atualizações
- Reduz drasticamente o risco de quebrar o sistema
Debian:
- Já possui comportamento mais seguro por padrão
- Atualizações mais estáveis
Ubuntu:
- Mais atualizado, porém com maior risco
- Exige controle manual em ambientes críticos
Boas práticas:
- Sempre manter pelo menos 1 kernel antigo funcional
- Nunca remover o kernel em uso
- Testar novos kernels antes de confiar totalmente
Com apenas duas configurações simples:
- Tempo de espera no GRUB
- Controle de atualização de kernel
Você transforma seu sistema em um ambiente muito mais seguro e previsível.
Essas práticas são especialmente recomendadas para:
- servidores
- máquinas de produção
- ambientes de desenvolvimento críticos