Artigo originalmente postado em 13/10/2023. Conteúdo revisado em 25/04/2026.
Gostaria de falar um pouco sobre um erro que me ocorreu em algumas oportunidades, sempre ao atualizar o sistema operacional CentOS. Primeiro, gostaria de deixar claro que sistemas Linux, geralmente, não inicializam por falha de configuração ou integridade de filesystem.
Uma falha que pode ocorrer também na inicialização do Linux está relacionada ao erro “Dracut”.
Ciclo de Inicialização do Linux
A seguir, de forma macro, podemos ver o ciclo de inicialização do Linux:

Vou abordar o passo 3, “Grub2”, onde o “erro Dracut” ocorre.
O que é o Dracut
O Dracut é um utilitário CLI utilizado para construir imagens Initramfs. Ou seja, quando um novo Kernel é instalado, o Dracut é acionado no post-install do pacote do Kernel para gerar o Initiramfs.
O que é Initramfs
Já o Initiramfs é um mini filesystem carregado em memória a cada boot do sistema. Ele contém módulos, scripts e comandos/binários utilizados pelo Vmlinuz. Sem ele, o sistema não inicializa.
O erro de Dracut ocorre quando o Initramfs tem um tipo de problema.
O que é Vmlinuz
O Vmlinuz (Virtual Memory Linux) é o Linux Kernel propriamente dito, só que compactado (Por isso o Z no final) para carregar rapidamente na memória RAM. Uma vez na memória RAM, ele é descompactado e fica por lá até o sistema desligar.
O que é o erro de Dracut
Não existe erro de Dracut. O que as pessoas chamam de erro de Dracut é, na verdade, um problema no Initramfs. O Dracut não é um serviço, logo, não pode falhar. Tudo o que ele faz é gerar a imagem Initramfs e fornecer para o Systemd alguns Units. Quando, por algum motivo, o Initramfs falha na execução de um desses Units, o prompt do Dracut é exibido.
Quando o problema ocorre
O problema ocorre, geralmente, por mal formação do Initiramfs ou por mudanças mal sucedidas no sistema operacional. O Initramfs pode falhar por diversos motivos como a ausência de módulos importantes, uuid errado ou incompatível com o vmlinuz, entre outros. Essas falhas não ocorrem do nada. Geralmente são precedidas de operações como atualização de pacotes, hardening ou tuning, etc.
Como resolver
No caso que apresento aqui, o erro de inicialização ocorreu por que o pacote LVM2 foi removido indevidamente em um processo de atualização, e pelo fato do sistema operacional usar volumes lógicos como discos do sistema.
Resolver esse problema requer a reinstalação do pacote LVM2 e a geração de novos Initramfs.
Para isso, é preciso bootar o equipamento usando um Live CD/USB como o Systemrescue. Tenho um artigo aqui no LinuxZilla falando sobre o Systemrescue.
Configurando a Rede no Live
Feito isso, é preciso configurar a rede do sistema no Live CD/USB. Você pode configurar a rede em memória com os comandos abaixo:
ifconfig interface ip-addr netmask máscara-de-rede
Exemplo:
ifconfig eth0 192.168.0.100 netmask 255.255.255.0
Agora é preciso testar a conectividade dessa rede com redes externas, pois nos próximos passos teremos que reinstalar o pacote lvm2.
Montando os volumes no Live
Feitos os devidos testes de conectividade, deve-se montar o disco do sistema e fazer bind das partições voláteis do Live para o disco do servidor.
Use os comandos abaixo como referência ajustando ao padrão existente no seu sistema:
Ativar os volumes:
lvchange -ay
Montar os volumes:
mount /dev/vg_system/lv_system /mnt/
Agora é preciso fazer Bind dos 3 diretórios voláteis do filesystem Linux:
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
A seguir, vamos fazer chroot pra dentro do sistema:
chroot /mnt/ /bin/bash
Recriando o Initramfs
Uma vez dentro do sistema, é preciso instalar o pacote lvm2 com o comando yum install lvm2.
Feito isso, vamos gerar novas imagens Initramfs.
Atenção: Sugiro fazer backup dos arquivos initramfs presentes no /boot.
Quando estiver pronto, execute o comando abaixo. Ele recriará o arquivo Initramfs mais recente:
dracut -f
Se preferir gerar novos Initramfs para todos os Kernels, use:
dracut --regenerate-all -f
Sugiro também que dê uma conferida no grub.cfg. Embora o Dracut não faça mudanças nele, é esperado que esteja bem configurado. Caso encontre inconsistências, execute o comando a seguir para gerar um grub.cfg novo:
Lembre-se, faça uma cópia de segurança antes de executar o comando.
grub2-mkconfig -o /boot/grub2/grub.cfg
Nesse ponto, você já pode sair do Live Linux com o comando exit, desmontar os bind, desmontar o disco do servidor e reiniciar o equipamento.
Resumo
A vida é boa, é a falha no boot do Linux que nos atrapalha. Além do how-to acima, fica a sugestão de conferir seu sistema antes de rebootar a máquina. Algumas checagens simples como `cat /etc/fstab` já podem evitar alguns estresses.
Boa sorte e até a próxima.
Abraços.

