Provided by: manpages-fr_3.17.1-1_all bug

NOM

       initrd - Disque RAM initialisé au démarrage du système.

CONFIGURATION

       /dev/initrd  est  un périphérique bloc en lecture-seule, dont le numéro
       majeur est 1, et le mineur 250. Typiquement, /dev/initrd  appartient  à
       root.disk   et   dispose  du  mode  0400  (lecture  uniquement  par  le
       superutilisateur). Si votre système Linux n’a  pas  encore  de  fichier
       /dev/initrd,   vous   pouvez   le  créer  en  utilisant  les  commandes
       suivantes :

               mknod -m 400 /dev/initrd b 1 250
               chown root:disk /dev/initrd

       Les options « disque RAM »  et  « Disque  RAM  initial »  (par  exemple
       CONFIG_BLK_DEV_RAM=y   et   CONFIG_BLK_DEV_INITRD=y   )   doivent  être
       compilées  directement  dans  le  noyau  Linux  pour  pouvoir  utiliser
       /dev/initrd.  Lors de l’utilisation de /dev/initrd, le pilote de disque
       RAM ne peut pas être chargé en tant que module.

DESCRIPTION

       Le fichier spécial /dev/initrd est  un  périphérique  bloc  en  lecture
       seule. Ce périphérique /dev/initrd est un disque RAM qui est initialisé
       par le chargeur du système avant le démarrage du noyau. Ainsi, le noyau
       peut  utiliser  le contenu de ce périphérique bloc pour un démarrage en
       deux phases.

       Durant la première phase, le  noyau  démarre  et  monte  la  racine  du
       système  de  fichiers  depuis le contenu de /dev/initrd (par exemple un
       disque RAM initialisé par le chargeur). Durant la  seconde  phase,  les
       pilotes  de  périphériques  supplémentaires  et les autres modules sont
       chargés depuis le périphérique racine initial. Après le  chargement  de
       ces modules supplémentaires, une nouvelle racine du système de fichiers
       est montée à partir d’un périphérique différent.

   Démarrage du système
       Quand il démarre en utilisant initrd, le système procède comme suit :

       1. Le chargeur place une copie  du  noyau  en  mémoire,  ainsi  que  le
          contenu de /dev/initrd.

       2. Au démarrage du noyau, celui-ci décompresse et recopie le contenu du
          périphérique /dev/initrd sur le disque virtuel /dev/ram0 puis libère
          la mémoire utilisée par /dev/initrd.

       3. Le  noyau  monte en lecture-écriture le périphérique /dev/ram0 comme
          racine initiale du système de fichiers.

       4. Si la racine désirée pour le système de fichiers est également celle
          que   l’on  vient  de  monter  (p.ex.  /dev/ram0),  le  noyau  passe
          directement à la dernière étape du démarrage.

       5. Si un fichier exécutable /linuxrc est  présent  sur  le  système  de
          fichiers  racine  initial,  ce fichier est exécuté avec l’uid 0. (Le
          fichier /linuxrc doit avoir la permission d’exécution. Ce peut  être
          n’importe quel exécutable, y compris un shell-script.)

       6. Si  /linuxrc  n’est  pas  exécuté ou lorsqu’il se termine, la racine
          normale du système de fichiers est montée. (Si /linuxrc  se  termine
          en ayant monté d’autres systèmes de fichiers sur la racine initiale,
          alors le comportement du noyau est INDÉTERMINÉ. Voir  le  paragraphe
          NOTES pour le comportement effectif.)

       7. Si   la   racine   normale   dispose  d’un  répertoire  /initrd,  le
          périphérique /dev/ram0 est déplacé depuis / vers /initrd. Sinon,  si
          le  répertoire  /initrd  n’existe pas, le périphérique /dev/ram0 est
          démonté. (Lors du déplacement de / vers /initrd, /dev/ram0 n’est pas
          démonté,  aussi  des processus peuvent continuer à s’exécuter depuis
          ce périphérique. Si  le  répertoire  /initrd  n’existe  pas  sur  le
          système  de  fichiers  normal,  et  si  des  processus  continuent à
          s’exécuter  depuis  /dev/ram0  lorsque  /linuxrc  se   termine,   le
          comportement du noyau est INDÉTERMINÉ. Voir le paragraphe NOTES pour
          le comportement effectif.)

       8. La séquence de démarrage  habituelle  (par  exemple,  invocation  de
          /sbin/init)  est  alors  effectuée  depuis  le  système  de fichiers
          normal.

   Options
       Lorsque  l’on  utilise  initrd,  les  options  suivantes  du   chargeur
       affectent les opérations de démarrage du noyau :

       initrd=nom_de_fichier
              Indique  le fichier à charger comme contenu de /dev/initrd. Pour
              LOADLIN, il s’agit d’une option en ligne de commande. Pour  LILO
              il faut utiliser cette commande dans le fichier de configuration
              /etc/lilo.config. Le fichier mentionné avec  cette  option  sera
              typiquement  une  image  compressée  par  gzip(1), du système de
              fichiers.

       noinitrd
              Cette option désactive le démarrage en deux étapes. Le noyau  se
              comporte comme si /dev/initrd n’était pas initialisé. Avec cette
              option, le contenu de /dev/initrd, une fois  chargé  en  mémoire
              sera  préservé.  Ce  contenu  peut  alors  être n’importe quelle
              donnée, et pas uniquement une image d’un  système  de  fichiers.
              Néanmoins,  le périphérique /dev/initrd est en lecture seule, et
              ne peut être lu qu’une seule fois après le démarrage du système.

       root=nom_de_priphrique
              Indique  le  nom du périphérique à utiliser comme racine normale
              du système de fichiers. Pour LOADLIN, il s’agit d’une option  en
              ligne  de  commande.  Pour  LILO il faut utiliser cette commande
              dans  le   fichier   de   configuration   /etc/lilo.config.   Le
              périphérique  indiqué  ici  doit  être  montable  et contenir un
              système de fichiers convenable.

   Modification de la racine du système de fichiers
       Par défaut, les paramètres du noyau (par exemple, ceux configurés  avec
       rdev(8)  ou  compilés  dans  le  noyau)  ou  les options du chargeur de
       démarrage sont utilisés pour les systèmes de fichiers racines  normaux.
       Pour  accéder  à  un  système de fichiers racine monté par NFS, il faut
       utiliser les options de démarrage nfs_root_name et nfs_root_addrs  pour
       la  configuration  NFS.  Pour  plus  d’informations  sur les racines de
       systèmes de fichiers montées par NFS, consultez le fichier  nfsroot.txt
       de   la  documentation  du  noyau.  Pour  plus  d’informations  sur  la
       configuration de la racine du système de fichiers, consultez  également
       les documentations de LILO et LOADLIN.

       On  peut aussi faire effectuer la modification de la racine normale par
       l’exécutable /linuxrc. Pour cela, le système  /proc  doit  être  monté.
       Après  avoir  monté  /proc,  /linuxrc modifie le périphérique racine en
       écrivant directement dans les fichiers  /proc/sys/kernel/real-root-dev,
       /proc/sys/kernel/nfs-root-name et /proc/sys/kernel/nfs-root-addrs. Pour
       un périphérique physique monté à la racine, le changement s’effectue en
       écrivant  le numéro de périphérique du nouveau système de fichiers dans
       /proc/sys/kernel/real-root-dev. Pour  un  système  monté  par  NFS,  la
       modification  s’effectue  en  écrivant  la  configuration  NFS dans les
       fichiers               /proc/sys/kernel/nfs-root-name                et
       /proc/sys/kernel/nfs-root-addrs  puis  en inscrivant 0xff (par exemple,
       le   numéro   de   pseudo-périphérique    NFS)    dans    le    fichier
       /proc/sys/kernel/real-root-dev.  Par  exemple,  la  ligne  de  commande
       suivante basculerait le périphérique racine normal sur /dev/hdb1:

           echo 0x365 >/proc/sys/kernel/real-root-dev

       La  ligne  suivante  modifierait  le  système  racine  normal  vers  un
       répertoire  NFS  /var/nfsroot  d’un  serveur  local  ayant l’adresse IP
       193.8.232.7, ceci sur  un  système  nommé  « idefix »,  se  trouvant  à
       l’adresse 193.8.232.7 :

           echo /var/nfsroot >/proc/sys/kernel/nfs-root-name
           echo 193.8.232.2:193.8.232.7::255.255.255.0:idefix \
               >/proc/sys/kernel/nfs-root-addrs
           echo 255 >/proc/sys/kernel/real-root-dev

       Note : l’utilisation de /proc/sys/kernel/real-root-dev pour modifier le
       système  de   fichiers   racine   est   obsolète.   Voir   le   fichier
       Documentation/initrd.txt   du   noyau   ainsi   que   pivot_root(2)  et
       pivot_root(8) pour des informations sur  les  méthodes  actuelles  pour
       changer de système de fichiers racine.

   Utilisation
       L’intérêt   principal  d’implémenter  initrd  était  de  permettre  une
       configuration modulaire du noyau lors de l’installation du système.

       Un scénario possible d’installation est le suivant :

       1. Le programme de chargement démarre depuis une disquette ou un  autre
          support  avec  un  noyau  minimal  (par  exemple,  les supports pour
          /dev/ram, /dev/initrd et le  système  de  fichiers  ext2),  puis  il
          charge  /dev/initrd  depuis  une  version  compressée avec gzip d’un
          système de fichiers initial.

       2. L’exécutable /linuxrc détermine  ce  qui  est  nécessaire  pour  (1)
          monter  le  système  de  fichiers  normal (pilotes de périphériques,
          systèmes de fichiers) et (2) utiliser  le  support  fourni  pour  la
          distribution  (par  exemple, CD-ROM, réseau, bande magnétique, ...).
          Cette étape peut être effectuée en  interrogeant  l’utilisateur,  en
          effectuant  des  tests  de détection automatique ou en utilisant une
          approche hybride entre les deux.

       3. L’exécutable /linuxrc  charge  les  modules  nécessaires  depuis  le
          système de fichiers initial.

       4. L’exécutable /linuxrc crée et remplit le système de fichiers racine.
          (À  cet  instant,  le  système  de   fichiers   racine   n’est   pas
          nécessairement complet).

       5. L’exécutable   /linuxrc   configure  /proc/sys/kernel/real-root-dev,
          démonte /proc, le système de fichiers normal, et tout autre  système
          de fichiers qu’il a éventuellement monté, et se termine.

       6. Le noyau monte alors le système de fichiers racine normal.

       7. Maintenant  que  le  système de fichiers est accessible, le chargeur
          peut être installé.

       8. Le chargeur est configuré pour installer dans /dev/initrd un système
          de fichiers disposant de l’ensemble des modules qui ont été utilisés
          pour démarrer  le  système.  (par  exemple,  un  périphérique  comme
          /dev/ram0 peut être modifié, puis démonté, et finalement l’image est
          recopiée depuis /dev/ram0 vers un fichier.)

       9. Le  système  est  maintenant  prêt  à  redémarrer,  et  les   tâches
          supplémentaires d’installation peuvent être effectuées.

       Le  principal  avantage  offert par /dev/initrd dans ce scénario est de
       permettre  de  réutiliser  les  données  de   configuration   lors   du
       fonctionnement  normal  du  noyau,  sans nécessiter de choisir un noyau
       initial, d’utiliser un gros noyau générique ou de recompiler  le  noyau
       après l’installation.

       Un  second  scénario  sert  à  l’installation  de  Linux  sur un réseau
       constitué de machines différentes. Dans ce cas, il peut être préférable
       de  n’utiliser  qu’un  nombre  minimal de noyaux (voire un seul dans le
       meilleur des cas) et de garder la quantité d’informations spécifiques à
       un  système  la  plus faible possible. Ainsi, on crée un fichier commun
       contenant tous les modules nécessaires, et seul le fichier /linuxrc  ou
       les fichiers qu’il lance changent suivant les machines.

       Un  troisième  scénario  permet  de disposer de disques de secours plus
       commodes. Les informations comme l’emplacement du système  de  fichiers
       racine  ne sont pas indispensables lors du démarrage. Le système chargé
       depuis /dev/initrd peut  ainsi  être  interactif  et/ou  effectuer  une
       détection   automatique  suivie  d’une  vérification  de  cohérence  du
       système.

       Le dernier usage mais non le moindre concerne l’utilisation  de  initrd
       pour  faciliter  l’installation  de  distribution  Linux par CD-ROM. La
       distribution peut utiliser directement LOADLIN pour charger /dev/initrd
       depuis  le  CD-ROM  sans  avoir  besoin  de  créer  de  disquettes.  La
       distribution peut également utiliser une disquette  de  démarrage  avec
       LILO  puis  charger  un  disque  ram par l’intermédiaire de /dev/initrd
       depuis le CD-ROM.

FICHIERS

       /dev/initrd
       /dev/ram0
       /linuxrc
       /initrd

NOTES

       1. Avec le noyau actuel, tout système de fichiers reste monté  lors  du
          déplacement  de  /dev/ram0 depuis / vers /initrd, et continue à être
          accessible. Néanmoins, les entrées de /proc/mounts ne sont pas mises
          à jour.

       2. Avec  le  noyau actuel, si le répertoire /initrd n’existe pas, alors
          /dev/ram0 ne sera pas complètement démonté si /dev/ram0 est  utilisé
          par un processus ou si un système de fichiers a été monté dessus. Si
          /dev/ram0 nest pas complètement démonté,  alors  /dev/ram0  restera
          chargé en mémoire.

       3. Les  utilisateurs  de  /dev/initrd  ne  doivent  pas compter sur les
          comportements  décrits  dans  les  deux   notes   précédentes.   Ces
          comportements  peuvent  changer  dans  les versions futures du noyau
          Linux.

VOIR AUSSI

       chown(1), mknod(1), ram(4), freeramdisk(8), rdev(8)

       Le fichier initrd.txt dans les sources du noyau,  la  documentation  de
       LILO, celle de LOADLIN, et la documentation SYSLINUX.

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.17 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       être       trouvées      à      l’adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Cette page de manuel a été traduite  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement         gérées         par          Simon          Paillard
       <simon.paillard@resel.enst-bretagne.fr>   et  l’équipe  francophone  de
       traduction de Debian.

       Veuillez  signaler  toute  erreur   de   traduction   en   écrivant   à
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de  ce  document
       en utilisant la commande « man -L C <section> <page_de_man> ».