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.
Já 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
Logo, dentro da pasta /boot eu vou ter uma imagem Initramfs com esta versão de Kernel:
Vamos ver a data de modificação deste arquivo:
$ ls -l initramfs-3.10.0-693.5.2.el7.x86_64.img
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
$ ls -l initramfs-3.10.0-693.5.2.el7.x86_64.img
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!