dwww Home | Manual pages | Find package

initrd(4)                  Kernel Interfaces Manual                  initrd(4)

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

CONFIGURATION
       /dev/initrd  est  un  périphérique bloc en lecture seule, de numéro ma-
       jeur 1 et de numéro mineur 250. Typiquement, /dev/initrd  appartient  à
       root:disk  et dispose du mode 0400 (lecture uniquement par le superuti-
       lisateur). Si votre système Linux ne comporte  pas  encore  de  fichier
       /dev/initrd,  vous  pouvez  le  créer  en  utilisant les commandes sui-
       vantes :

           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  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 /dev/initrd pour un démarrage en deux phases.

       Durant  la  première phase, le noyau démarre et monte la racine du sys-
       tè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 (par exemple /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. Il peut
            être n'importe quel exécutable valable, 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  ini-
            tiale,  alors  le comportement du noyau est INDÉTERMINÉ. Consultez
            le paragraphe NOTES pour le comportement effectif.

       (7)  Si le système de fichiers racine normal  dispose  d'un  répertoire
            /initrd, le périphérique /dev/ram0 est déplacé depuis / vers /ini-
            trd. 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  proces-
            sus  continuent  à s'exécuter depuis /dev/ram0 lorsque /linuxrc se
            termine, le comportement du noyau est  INDÉTERMINÉ.  Consultez  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 nor-
            mal.

   Options
       Lorsque  l'on  utilise  initrd,  les  options suivantes du chargeur af-
       fectent 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  fi-
              chiers.

       noinitrd
              Cette option de démarrage désactive le démarrage en deux étapes.
              Le noyau se comporte comme si /dev/initrd  n'était  pas  initia-
              lisé.  Avec cette option, une fois chargé en mémoire, le contenu
              de /dev/initrd sera préservé. Ce contenu peut alors  être  n'im-
              porte  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_périphérique
              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émar-
       rage  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 confi-
       guration NFS. Pour plus d'informations sur les racines de  systèmes  de
       fichiers  montées  par NFS, consultez le fichier de la documentation du
       noyau Documentation/filesystems/nfsroot.txt (ou  Documentation/filesys-
       tems/nfsroot.txt avant la verions 2.6.33). Pour plus d'informations sur
       la configuration de la racine du système de fichiers, consultez  égale-
       ment 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 modi-
       fication  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 pseudopé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éper-
       toire   NFS   /var/nfsroot   d'un   serveur   local   ayant   l'adresse
       IP 193.8.232.7, cela sur un système nommé  « idefix »,  se  trouvant  à
       l'adresse 193.8.232.2 :

           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. Consultez le fichier  Documen-
       tation/admin-guide/initrd.txt  du  noyau  Linux  (ou Documentation/ini-
       trd.txt avant la version 4.10) ainsi que pivot_root(2) et pivot_root(8)
       pour  des  informations sur les méthodes actuelles pour changer le sys-
       tème de fichiers racine.

   Utilisation
       L'intérêt principal d'implémenter initrd était de permettre une  confi-
       guration 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  ra-
            cine.  À  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 sys-
            tè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 fonction-
       nement 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 consti-
       tué  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, change 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 dis-
       tribution peut utiliser directement LOADLIN  pour  charger  /dev/initrd
       depuis le CD-ROM sans avoir besoin de créer de disquettes. La distribu-
       tion 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
       •  Avec le noyau actuel, tout système de fichiers qui reste monté  lors
          du  déplacement  de  /dev/ram0  depuis / vers /initrd demeure acces-
          sible. Néanmoins, les entrées de /proc/mounts ne sont  pas  mises  à
          jour.

       •  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 n'est pas complètement démonté,  alors  /dev/ram0  restera
          chargé en mémoire.

       •  Les  utilisateurs de /dev/initrd ne doivent pas compter sur les com-
          portements décrits dans les deux notes  précédentes.  Ces  comporte-
          ments peuvent changer dans les versions futures du noyau Linux.

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

       Documentation/admin-guide/initrd.rst (ou Documentation/initrd.txt avant
       Linux 4.10) dans les sources du noyau Linux, la documentation de  LILO,
       celle de LOADLIN et celle de SYSLINUX.

TRADUCTION
       La  traduction française de cette page de manuel a été créée par Chris-
       tophe Blaess <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <ste-
       phan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, Fran-
       çois Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe  Gué-
       rard  <fevrier@tigreraye.org>,  Jean-Luc  Coulon (f5ibh) <jean-luc.cou-
       lon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>,  Thomas  Huriaux
       <thomas.huriaux@gmail.com>,  Nicolas François <nicolas.francois@centra-
       liens.net>, Florentin Duneau <fduneau@gmail.com>, Simon  Paillard  <si-
       mon.paillard@resel.enst-bretagne.fr>,    Denis   Barbier   <barbier@de-
       bian.org>, David Prévot  <david@tilapin.org>,  Cédric  Boutillier  <ce-
       dric.boutillier@gmail.com>,  Frédéric Hantrais <fhantrais@gmail.com> et
       Grégoire Scano <gregoire.scano@malloc.fr>

       Cette traduction est une documentation libre ; veuillez vous reporter à
       la        GNU        General       Public       License       version 3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ concernant  les  conditions
       de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si  vous découvrez un bogue dans la traduction de cette page de manuel,
       veuillez envoyer un message à ⟨debian-l10n-french@lists.debian.org⟩.

Pages du manuel de Linux 6.03   5 février 2023                       initrd(4)

Generated by dwww version 1.15 on Sat Jun 29 01:39:57 CEST 2024.