Mateus Müller

O carinha do Linux

12 nov. 2017

LPIC-2: O que é e para que serve o dracut

Um assunto que eu já comentei no vídeo entenda o processo de boot no Linux em 5 minutos foi a função do arquivo Initrd ou Initramfs durante o processo de boot.

Em qualquer distribuição Linux, você pode criar um arquivo Initrd com o comando mkinitrd. Entretanto, existem alguns utilitários para facilitar este trabalho.

Em distribuições Debian-based o utilitário que faz isso é o update-initramfs.

Já em distribuições Red Hat-based o utilitário para criar este tipo de imagem é o dracut.

E hoje vou ensinar o que é e para que serve o dracut.

Qual a diferença entre Initrd e Initramfs?

Primeiramente, você deve saber que o Initramfs é uma evolução do Initrd.

O Initrd era utilizado nos Kernels mais antigos, abaixo da versão 2.6. Ele era um arquivo estático em um formato Ext2 que continha os módulos a serem carregados durante o boot. Mas aí havia um problema…

E se eu precisasse adicionar um novo módulo? Teria que formatar novamente em Ext2 e ter mais trabalho? Desta forma, não havia a possibilidade de diminuir ou aumentá-lo.

o Initramfs é um arquivo dinâmico, podemos aumentar e diminuir o tamanho dele com módulos conforme a nossa necessidade. Ele é um arquivo cpio que é descompactado durante o processo de boot. Foi implantado à partir do Kernel 2.6 e é utilizado até hoje.

O que é o dracut?

O dracut é um utilitário para gerar imagens de Initramfs de uma forma simples e rápida.

Basicamente, para a prova da LPI, você terá que estar ciente_ _da função do dracut e saber como gerar uma imagem básica utilizando ele.

Como utilizar o dracut?

Se você quiser gerar uma imagem Initramfs do Kernel que está sendo utilizado no momento, basta rodar o comando:

$ dracut

Se a imagem deste Kernel já existir e você quiser substituir a imagem existente, você pode utilizar a opção -f.

Vamos ver na minha VM com CentOS 7:

$ uname -r
O que é e para que serve o dracut
O que é e para que serve o dracut

Logo, dentro da pasta /boot eu vou ter uma imagem Initramfs com esta versão de Kernel:

O que é e para que serve o dracut
O que é e para que serve o dracut

Vamos ver a data de modificação deste arquivo:

$ ls -l initramfs-3.10.0-693.5.2.el7.x86_64.img
O que é e para que serve o dracut
O que é e para que serve o dracut

Agora vou gerar uma nova imagem que ficará com o mesmo nome, mas você verá que a data de modificação vai mudar:

$ dracut -fv
O que é e para que serve o dracut
O que é e para que serve o dracut
$ ls -l initramfs-3.10.0-693.5.2.el7.x86_64.img
O que é e para que serve o dracut
O que é e para que serve o dracut

Veja que o horário alterou, o novo arquivo foi gerado.

Se você quiser criar uma imagem de uma outra versão de Kernel, pode fazer desta forma.

$ dracut -f --kver 3.10.0-693.el7.x86_64

Você também pode configurar no dracut alguns parâmetro fixos, como por exemplo: Quero que nunca seja inserido o módulo X nos arquivos Initramfs.

Isso, você pode configurar no arquivo /etc/dracut.conf:

Espero ter auxiliado vocês de alguma forma galera. Forte abraço!

Se tiver alguma dúvida ou sugestão de conteúdo, por favor, comente!

Comentários Disqus