Problème d'oeuf de poulet à Linux et Initrd

Problème d'oeuf de poulet à Linux et Initrd
Qu'est-ce que le problème Checken / Egg.

Le problème du poulet / des œufs s'est produit dans le processus de démarrage de Linux. Un module requis du noyau Linux pour monter la partition racine qui utilise généralement un système de fichiers EXT3, LVM, RAID, etc. Tous les modules Linux résident dans le répertoire / var / lib / ($ uname -r) mais le noyau Linux n'a pas pu y accéder sans le monter. Le problème était donc de savoir comment les modules d'accès au noyau Linux requis pour monter la partition racine.

Comment le noyau Linux le résout

Le Grub Boot Loader et le noyau Linux travaillent ensemble pour résoudre ce problème à l'aide du disque RAM initial (INITRD), qui fait partie de la spécification GRUB pour un noyau Linux.

Un disque RAM initial (INITRD) est spécifique à une plate-forme matérielle et logicielle particulière. Il est créé au moment de l'installation du système et inclut des modules qui doivent monter le système de fichiers.

Recréer un fichier initrd

Parfois, nous devons recréer un fichier initrd. mkinitrd Crée une image de disque RAM initiale utilisée par le noyau pour précharger les modules de périphérique de bloc (tels que IDE, SCSI ou RAID) qui sont nécessaires pour accéder au système de fichiers racine.

# mkinitrd -f / boot / initrd - $ (uname -r).img $ (uname -r) 
  • Le premier argument est l'emplacement de l'image initrd.
  • Le deuxième argument indique au nom du répertoire dans / var / lib / qui contient des modules.

Il est également possible de forcer à ajouter un module particulier dans le fichier image initrd en utilisant-avec un mot-clé.

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

Cet article est basé sur les systèmes RHEL / CENTOS 5. Le répertoire des modules du système RHEL / CENTOS 6 est différent de 5.