posts recentes|

Artigo > Problema no boot Linux com erro de Dracut

Gostaria de falar um pouco sobre um erro que me ocorreu em algumas oportunidades, sempre ao atualizar o sistema operacional CentOS 7.

Primeiro, gostaria de deixar claro que sistemas Linux, geralmente, não inicializam por falha de configuração ou integridade de file system.

Uma falha que pode ocorrer também na inicialização do Linux está relacionada ao erro “Dracut”.

O que é o Dracut

Dracut é um utilitário utilizado para gerar imagens Initramfs. Esse, por sua vez, é um sub-system responsável pela inicialização do sistema operacional Linux.

A seguir, podemos ver como é ciclo de inicialização do Linux:

Logo, se há uma falha no Initramfs, o sistema não inicializa, dando erro de “Dracut”. O Dracut mesmo não falha, mas seu prompt é exibido no boot do sistema quando ocorre uma falha na inicialização, levanto as pessoas a falar que houve uma falha no Dracut.

O que causa o erro

Como informado, o erro de inicialização ocorre quando uma Initramfs mal formada é carregada, e essa mal formação do Initiramfs pode ocorrer por módulos ausentes e/ou inconsistências no sistema, principalmente após atualizações de pacotes.

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.

Como resolver

Resolver esse problema requer a reinstalação do pacote LVM2 e a geração de novos Initramfs.

Para isso, é preciso bootar um Live CD como o Systemrescue. Tenho um artigo aqui no Blog Porta 80 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 INTERFACEDEREDE IP netmask MASCARADEREDE

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 as partições do sistema operacional do servidor.

Use os comandos abaixo como referência e adéque-os ao padrão existente no seu sistema:

01 – Ativar os volumes:

lvchange -ay

02 – Montar os volumes:

mount /dev/vg_system/lv_system /mnt/

03 – 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

04 – A seguir, fazer chroot pra dentro do sistema:

chroot /mnt/ /bin/bash

Uma vez dentro do sistema, é preciso instalar o pacote lvm2 com o comando yum install lvm2.

Feito isso, vamos gerar novas imagens initramfs.

Gerando novos Initramfs:

Atenção: Sugiro fazer backup dos arquivos initramfs presentes no /boot.

Quando estiver pronto, execute o comando abaixo. Ele recriará o arquivo initramfs:

dracut -f

Sugiro também que dê uma conferida no grub.cfg. Se estiver inconsistente, o que não estará, execute o comando abaixo para recriá-lo:

grub2-mkconfig -o /boot/grub2/grub.cfg

Resumo

A vida é boa, é a falha no boot do Linux que 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á pode evitar alguns estresses.

Boa sorte e até a próxima.

Abraços.

100850cookie-checkArtigo > Problema no boot Linux com erro de Dracut

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.