Provided by: manpages-fr_4.27.0-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, de numéro majeur 1 et de numéro mineur 250.
       Typiquement, /dev/initrd appartient à root:disk et dispose  du  mode  0400  (lecture  uniquement  par  le
       superutilisateur).  Si  votre système Linux ne comporte 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 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 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 (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 initiale,
            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 /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É. 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 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 de démarrage désactive le démarrage en deux étapes. Le noyau  se  comporte  comme  si
              /dev/initrd  n'était  pas initialisé. Avec cette option, une fois chargé en mémoire, le contenu de
              /dev/initrd 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_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é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   de   la   documentation   du   noyau
       Documentation/filesystems/nfsroot.txt (ou Documentation/filesystems/nfsroot.txt avant la verions 2.6.33).
       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  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épertoire 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   Documentation/admin-guide/initrd.txt   du    noyau    Linux    (ou
       Documentation/initrd.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 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, 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 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

       -  Avec le noyau actuel, tout système de fichiers qui reste monté lors du déplacement de /dev/ram0 depuis
          / vers /initrd demeure accessible. 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 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)

       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   Christophe   Blaess
       <https://www.blaess.fr/christophe/>,   Stéphan   Rafin   <stephan.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.coulon@wanadoo.fr>,   Julien   Cristau
       <jcristau@debian.org>,     Thomas     Huriaux      <thomas.huriaux@gmail.com>,      Nicolas      François
       <nicolas.francois@centraliens.net>,     Florentin     Duneau    <fduneau@gmail.com>,    Simon    Paillard
       <simon.paillard@resel.enst-bretagne.fr>,    Denis    Barbier    <barbier@debian.org>,    David     Prévot
       <david@tilapin.org>,     Cédric     Boutillier     <cedric.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 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.9.1                    15 juin 2024                                         initrd(4)