¿Cuál es la relación entre dracut e initramfs?

¿Cuál es la relación entre dracut e initramfs?

Cuando experimento un error de arranque, veo que el sistema muestra un mensaje que dice dracut.

Según tengo entendido, dracut se utiliza para generar una imagen de initramfs. Lo que me confunde es que, basándose en el hecho de que estoy accediendo a un shell llamado "dracut", no parece ser solo un programa de utilidad para generar initramfs, sino que también es un programa en sí mismo que se ejecuta en el arranque. ¿Es esto correcto? - Si lo anterior es exacto, ¿cuál es la distinción/relación entre initramfs y dracut?

Respuesta1

Dracut es a la vez una herramienta para generar una instancia de initramfs y también tiene lo que se llama el shell de emergencia de dracut. El propósito de initramfs es proporcionar un entorno capaz de buscar, cargar y pasar la ejecución al sistema de archivos raíz. Si en algún momento algo sale mal durante este proceso, initramfs caerá al shell de emergencia de dracut, dándole la oportunidad de depurar/intentar reparar el problema.

Respecto al comentario:

"Me encantaría hacerlo. Para aclarar, lo que sucedió originalmente fue que tenía una máquina virtual VMWare ejecutando RHEL. Debido a un problema con la importación de máquinas virtuales directamente a VMWare Workstation, decidí simplemente extraer el disco duro de la máquina virtual de ESXi y colocarlo en una nueva máquina virtual. en VMWare Workstation Sin embargo, cuando intento iniciar la VM, puedo cargar GRUB y posteriormente dracut, pero dracut no encuentra el sistema de archivos raíz. Esto es extraño porque uno esperaría que si dracut pudiera cargar, el sistema. También podría encontrar el sistema de archivos raíz."

Cuando instala RHEL, dracut genera una instancia de initramfs que solo contiene los controladores necesarios para ser compatible con el hardware en el que se instaló el sistema operativo. Cuando moví el disco duro de mi instancia RHEL de ESXi en un conjunto de hardware virtual a VMWare Workstation, un conjunto diferente de hardware virtual, los initramfs asociados con el kernel ya no tenían el conjunto adecuado de controladores necesarios para encontrar y cargar el sistema de archivos raíz. .

Para solucionar el problema, antes de mover el disco duro, debe ejecutar dracut --force --no-hostonly. Citarhttps://fedoramagazine.org/initramfs-dracut-and-the-dracut-emergency-shell/

El parámetro force le dice a dracut que está bien sobrescribir el archivo initramfs existente. El parámetro no-hostonly anula el comportamiento predeterminado de incluir solo controladores que sean pertinentes para la computadora que se está ejecutando actualmente y hace que dracut incluya en su lugar todos los controladores en initramfs.

Esto significa que dracut ahora estará "inflado" y tendrá todos los controladores necesarios para cuando se mueva el disco duro. Una vez que termine de mover el disco duro, deberá volver a ejecutar dracut para dracut --forceregenerar una versión liviana de dracut.

información relacionada