Problema de huevo de gallina en Linux e initrd

Problema de huevo de gallina en Linux e initrd
¿Qué es el problema de checken/huevo?.

El problema de pollo/huevo ocurrió en el proceso de arranque de Linux. Un kernel de Linux requerido módulos para montar la partición raíz que generalmente usa el sistema de archivos ext3, LVM, RAID, etc. Todos los módulos de Linux residen en el directorio en/var/lib/($ uname -r), pero el kernel de Linux no pudo acceder a ellos sin montarlo. Entonces, el problema era cómo se requerían los módulos de acceso al núcleo de Linux para montar la partición de la raíz.

Cómo lo consigue el kernel de Linux

El cargador de arranque de grub y el kernel de Linux funcionan juntos para resolver este problema utilizando el disco RAM inicial (initrd), que forma parte de la especificación de grub para un kernel de Linux.

Un disco RAM inicial (initrd) es específico para la plataforma de hardware y software particular. Está creado en el tiempo de instalación del sistema e incluir módulos que necesitan montar el sistema de archivos.

Recrear el archivo initrd

Algunas veces exigimos recrear el archivo inyrd. mkinitrd Crea una imagen inicial de disco RAM utilizada por el núcleo para precargar los módulos de dispositivo de bloque (como IDE, SCSI o RAID) que son necesarios para acceder al sistema de archivos raíz.

# mkinitrd -f /boot /initrd -$ (uname -r).img $ (uname -r) 
  • El primer argumento es la ubicación de la imagen initrd.
  • El segundo argumento indica el nombre del directorio en/var/lib/que contiene módulos.

También es posible forzar agregar un módulo particular en el archivo de imagen initrd usando -con palabra clave.

# mkinitrd -with = scsi_mod -f /boot /initrd -$ (uname -r).img $ (uname -r) 

Este artículo se basa en sistemas Rhel/Centos 5. El directorio de módulos del sistema RHEL/CENTOS 6 es diferente a 5.