Qual é a relação entre dracut e initramfs?

Qual é a relação entre dracut e initramfs?

Ao experimentar uma falha de inicialização, vejo o sistema cair para um prompt que diz dracut.

Pelo que entendi, o dracut é usado para gerar uma imagem do initramfs. O que estou confuso é que, com base no fato de que estou acessando um shell intitulado "dracut", ele não parece ser apenas um programa utilitário para gerar initramfs, mas também é um programa próprio que é executado na inicialização. Isso está correto? - Se o que foi dito acima estiver correto, então qual é a distinção/relação entre initramfs e dracut?

Responder1

Dracut é uma ferramenta para gerar uma instância do initramfs e também possui o que é chamado de shell de emergência dracut. O objetivo do initramfs é fornecer um ambiente capaz de localizar, carregar e passar a execução para o sistema de arquivos raiz. Se em algum momento algo der errado durante este processo, o initramfs irá para o shell de emergência do dracut, dando a você a oportunidade de depurar/tentar reparar o problema.

Em relação ao comentário:

"Eu ficaria feliz em fazê-lo. Para esclarecer, o que aconteceu originalmente foi que eu tinha uma VM VMWare rodando RHEL. Devido a um problema com a importação de VMs diretamente para o VMWare Workstation, decidi apenas puxar o disco rígido da VM do ESXi para uma nova VM no VMWare Workstation No entanto, quando tento inicializar a VM, consigo carregar o GRUB e, posteriormente, o dracut, mas o dracut não consegue encontrar o sistema de arquivos raiz. também seria capaz de encontrar o sistema de arquivos raiz."

Ao instalar o RHEL, o dracut gera uma instância do initramfs que contém apenas os drivers necessários para ser compatível com o hardware no qual o sistema operacional foi instalado. Quando mudei o disco rígido da minha instância RHEL do ESXi em um conjunto de hardware virtual para o VMWare Workstation, um conjunto diferente de hardware virtual, o initramfs associado ao kernel não tinha mais o conjunto apropriado de drivers necessários para localizar e carregar o sistema de arquivos raiz .

Para corrigir o problema, antes de mover o disco rígido, você precisa executar o dracut --force --no-hostonly. Citarhttps://fedoramagazine.org/initramfs-dracut-and-the-dracut-emergency-shell/

O parâmetro force informa ao dracut que não há problema em sobrescrever o arquivo initramfs existente. O parâmetro no-hostonly substitui o comportamento padrão de incluir apenas drivers que são pertinentes ao computador em execução no momento e faz com que o dracut inclua todos os drivers no initramfs.

Isso significa que o dracut agora estará "inchado" e terá todos os drivers aplicáveis ​​necessários para quando o disco rígido for movido. Depois de terminar de mover o disco rígido, você deverá executar novamente o dracut para dracut --forceregenerar uma versão leve do dracut.

informação relacionada