Provided by: manpages-fr_4.19.0-7_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  ⟨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⟩.