Provided by: manpages-de_4.27.0-1_all bug

BEZEICHNUNG

       initrd - vom Boot-Loader initialisierte RAM-Disk

KONFIGURATION

       /dev/initrd  ist  ein  nur  lesbares  Blockgerät  mit  der  Major-Nummer  1  und  der  Minor-Nummer  250.
       Typischerweise ist der Besitzer von /dev/initrd root.disk;  die  Zugriffsrechte  sind  auf  0400  gesetzt
       (Lesezugriff nur für root). Wenn /dev/initrd nicht schon im Linux-System eingerichtet wurde, kann sie mit
       den folgenden Befehlen erstellt werden:

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

       Auch muss Unterstützung für sowohl »RAM-Disk« als auch »Initial RAM Disk« (z. B. CONFIG_BLK_DEV_RAM=y und
       CONFIG_BLK_DEV_INITRD=y)  direkt in den Linux-Kernel kompiliert werden, um /dev/initrd zu verwenden. Wird
       /dev/initrd verwendet, kann der RAM-Disk-Treiber nicht als Modul geladen werden.

BESCHREIBUNG

       Die Spezialdatei /dev/initrd ist ein nur lesbares Blockgerät. Dieses Gerät ist  eine  RAM-Disk,  die  vom
       Boot-Loader  initialisiert (z.B. geladen) wird, bevor der Kernel gestartet wird. Der Kernel kann dann den
       Inhalt von /dev/initrd für einen zweiphasigen Systemstart verwenden.

       In der ersten Phase startet  der  Kernel  und  bindet  ein  erstes  Wurzeldateisystem  mit  Inhalten  von
       /dev/initrd  ein  (z.  B.  die  vom  Boot-Loader  initialisierte  RAM-Disk).  In der zweiten Phase werden
       zusätzliche Treiber oder andere Module aus dem Inhalt des ersten Wurzelgeräts geladen. Nach dem Laden der
       zusätzlichen Module wird ein neues Wurzeldateisystem (d. h.  das  normale  Wurzeldateisystem)  von  einem
       anderen Gerät eingebunden.

   Der Boot-Vorgang
       Beim Booten mit initrd startet das System wie folgt:

       (1)  Der Boot-Loader lädt den Kernel und den Inhalt von /dev/initrd in den Speicher.

       (2)  Wenn  der  Kernel startet, dekomprimiert und kopiert er den Inhalt des Gerätes /dev/initrd auf Gerät
            /dev/ram0 und gibt dann den Speicher frei, den /dev/initrd belegte.

       (3)  Der Kernel bindet dann das Gerät /dev/ram0 schreib- und lesbar  als  anfängliches  Wurzeldateisystem
            ein.

       (4)  Wenn  das  angegebene  normale  Wurzeldateisystem  auch  das anfängliche Wurzeldateisystem ist (z.B.
            /dev/ram0), springt der Kernel zum letzten Schritt für die übliche Boot-Sequenz.

       (5)  Wenn im anfänglichen Wurzeldateisystem die ausführbare Datei /linuxrc vorhanden ist,  wird  sie  mit
            UID  0 ausgeführt. (Die Datei /linuxrc muss über Ausführungsrechte verfügen. Sie kann eine beliebige
            gültige, ausführbare Datei sein, also auch ein Shell-Skript.)

       (6)  Wenn /linuxrc nicht ausgeführt oder wenn /linuxrc beendet wird, wird das  normale  Wurzeldateisystem
            eingebunden.  (Wenn  /linuxrc beendet wird, wenn noch Dateisysteme im anfänglichen Wurzeldateisystem
            eingehängt sind,  dann  ist  das  Verhalten  des  Kernels  NICHT  FESTGELEGT;  siehe  den  Abschnitt
            ANMERKUNGEN für das aktuelle Kernel-Verhalten.)

       (7)  Wenn  im  normalen Wurzeldateisystem ein Verzeichnis /initrd vorhanden ist, wird das Gerät /dev/ram0
            von / auf /initrd gelegt. Wenn das Verzeichnis /initrd nicht vorhanden ist, wird das Gerät /dev/ram0
            ausgehängt. (Wenn /dev/ram0 von / nach /initrd verschoben wird, wird /dev/ram0 nicht ausgehängt  und
            damit  können Prozesse weiterhin von /dev/ram0 ausgeführt werden. Wenn das Vorzeichnis /initrd nicht
            auf dem normalen Wurzeldateisystem existiert und noch weiterhin Prozesse  von  /dev/ram0  ausgeführt
            werden,  wenn  /linuxrc  sich  beendet,  ist  das  Verhalten des Kernels NICHT FESTGELEGT; siehe den
            Abschnitt ANMERKUNGEN für das aktuelle Kernel-Verhalten.)

       (8)  Die übliche Boot-Sequenz (z.B. Aufruf  von  /sbin/init)  wird  auf  dem  normalen  Wurzeldateisystem
            durchgeführt.

   Optionen
       Die  folgenden  Optionen des Boot-Loaders wirken sich auf das Verhalten des Kernels beim Systemstart aus,
       wenn sie mit initrd verwendet werden:

       initrd=Dateiname
              Gibt die Datei an, die als  Inhalt  von  /dev/initrd  geladen  wird.  Für  LOADLIN  ist  das  eine
              Befehlszeilenoption.   Für   LILO   müssen  Sie  diesen  Befehl  in  der  LILO-Konfigurationsdatei
              /etc/lilo.config verwenden.  Die  mit  dieser  Option  angegebene  Datei  ist  typischerweise  ein
              komprimiertes Dateisystem-Abbild.

       noinitrd
              Diese  Boot-Option  deaktiviert  den  zweiphasigen  Systemstart.  Der  Kernel  führt  die  übliche
              Boot-Sequenz aus, als ob /dev/initrd nicht initialisiert wurde. Mit dieser Option bleiben alle vom
              Boot-Loader in den Speicher geladenen Inhalte von /dev/initrd erhalten. Diese  Option  ermöglicht,
              dass   der   Inhalt   von   /dev/initrd   aus   beliebigen  Daten  bestehen  kann  und  nicht  auf
              Dateisystem-Abbilder beschränkt sein muss. Allerdings ist das Gerät  /dev/initrd  schreibgeschützt
              und kann nur einmal nach dem Systemstart gelesen werden.

       root=Gerätename
              Gibt  das Gerät an, das als normales Wurzeldateisystem verwendet werden soll. Für LOADLIN ist dies
              ist eine Befehlszeilen-Option. Für LILO kann diese Option beim Systemstart oder  als  Optionszeile
              in  der  LILO-Konfigurationsdatei  /etc/lilo.config  verwendet  werden.  Das  durch  diese  Option
              angegebene Gerät muss eingehängt werden können und ein geeignetes Wurzeldateisystem enthalten.

   Wechsel des normalen Wurzeldateisystems
       Standardmäßig werden die Kernel-Einstellungen (z. B. mit rdev(8) in der Kernel-Datei gesetzt oder in  die
       Kernel-Datei   kompiliert)   oder   die   Options-Einstellungen   des   Boot-Loaders   für   das  normale
       Wurzeldateisystem verwendet. Für  ein  über  NFS  eingebundenes  normales  Wurzeldateisystem  müssen  die
       Boot-Optionen nfs_root_name und nfs_root_addrs genutzt werden, um die NFS-Einstellungen zu übergeben. Für
       weitere  Informationen über via NFS eingebundene Wurzeldateisysteme lesen Sie die Kernel-Dokumentation in
       der Datei Documentation/filesystems/nfs/nfsroot.txt (oder Documentation/filesystems/nfsroot.txt vor Linux
       2.6.33).  Weitere  Informationen  über  das  Einstellen  des  Wurzeldateisystems  finden  sich   in   den
       Dokumentationen von LILO und LOADLIN.

       Die  ausführbare  Datei  /linuxrc  kann  auch  das normale Wurzelgerät ändern. Damit /linuxrc das normale
       Wurzelgerät ändern kann, muss /proc eingehängt sein. Nach dem Einhängen von  /proc  ändert  /linuxrc  das
       normale   Wurzelgerät   durch   das   Schreiben   in   die  proc-Dateien  /proc/sys/kernel/real-root-dev,
       /proc/sys/kernel/nfs-root-name  und  /proc/sys/kernel/nfs-root-addrs.  Ein  physisches  Wurzelgerät  wird
       geändert,  indem /linuxrc die Gerätenummer des neuen Wurzeldateisystems in /proc/sys/kernel/real-root-dev
       schreibt. Für ein NFS-Wurzeldateisystem wird das Wurzelgerät geändert, indem /linuxrc die NFS-Einstellung
       in die Dateien /proc/sys/kernel/nfs-root-name und /proc/sys/kernel/nfs-root-addrs schreibt und dann  0xff
       (z.  B.  die  NFS-Pseudo-Gerätenummer) in die Datei /proc/sys/kernel/real-root-dev schreibt. Zum Beispiel
       würde der folgende Shell-Befehl das normale Wurzelgerät auf /dev/hdb1 ändern:

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

       Ein NFS-Beispiel: Die folgenden Shell-Befehlszeilen würden das normale Wurzelgerät für ein System mit der
       IP-Nummer 193.8.232.2 und dem Namen »idefix« auf das NFS-Verzeichnis /var/nfsroot  auf  einem  NFS-Server
       mit der IP-Nummer 193.8.232.7 im lokalen Netzwerk ändern:

           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

       Hinweis:  Die  Verwendung  von /proc/sys/kernel/real-root-dev für die Änderung des Wurzeldateisystems ist
       veraltet. Die Linux-Kernel-Quelldatei Documentation/admin-guide/initrd.rst (oder Documentation/initrd.txt
       vor Linux 4.10) sowie pivot_root(2) und pivot_root(8) informieren über das moderne Verfahren zur Änderung
       des Wurzeldateisystems.

   Verwendung
       Die Hauptmotivation für die Implementierung von  initrd  war,  bei  der  Installation  des  Systems  eine
       modulare Kernel-Konfiguration zu ermöglichen.

       Ein mögliches Szenario für eine Systeminstallation ist das folgende:

       (1)  Das  Ladeprogramm  startet  von  einer Diskette oder einem anderen Medium mit einem minimalen Kernel
            (beispielsweise mit Unterstützung für /dev/ram,  /dev/initrd  und  das  ext2-Dateisystem)  und  lädt
            /dev/initrd mit einer komprimierten Version des anfänglichen Dateisystems.

       (2)  Die  ausführbare  Datei /linuxrc bestimmt, was für (1) das Einhängen des normalen Wurzeldateisystems
            (z.B. Gerätetyp, Gerätetreiber, Dateisystem) und (2) der Installationsmedien (z.B. CD-ROM, Netzwerk,
            Band, …) erforderlich ist. Dies kann durch Befragung des Benutzers, dem Selbstuchen des Gerätes oder
            mit einem hybriden Ansatz erfolgen.

       (3)  Die ausführbare Datei /linuxrc lädt die notwendigen Module aus dem anfänglichen Wurzeldateisystem.

       (4)  Die ausführbare Datei /linuxrc erstellt und füllt das Wurzeldateisystem. (In diesem Stadium muss das
            normale Wurzeldateisystem noch kein vollständiges System sein.)

       (5)  Die ausführbare Datei /linuxrc schreibt /proc/sys/kernel/real-root-dev,  hängt  /proc,  das  normale
            Wurzeldateisystem und alle weiteren von ihm eingehängten Dateisysteme aus und beendet sich dann.

       (6)  Der Kernel bindet dann das normale Wurzeldateisystem ein.

       (7)  Nachdem  das  System intakt ist und darauf zugegriffen werden kann, kann der Boot-Loader installiert
            werden.

       (8)  Der Boot-Loader ist so konfiguriert, dass er in /dev/initrd ein Dateisystem mit dem Satz von Modulen
            lädt, die beim Systemstart eingesetzt waren. (z.B. kann  das  Gerät  /dev/ram0  modifiziert,  danach
            ausgehängt und schließlich sein Abbild (Image) in eine Datei geschrieben werden.)

       (9)  Das System ist nun bootfähig und zusätzliche Installationsaufgaben können durchgeführt werden.

       Die  Schlüsselrolle  von  /dev/initrd im Vorgehenden ist es, die Konfigurationsdaten während des normalen
       Betriebs weiter zu verwenden, ohne dass der  ursprüngliche  Kernel  ausgewählt,  ein  großer  generischer
       Kernel eingesetzt oder ein Kernel neu kompiliert werden muss.

       Ein  zweites  Szenario  sind  Netzwerk-Installationen,  in  denen  Linux  auf  Systemen mit verschiedenen
       Hardware-Konfigurationen läuft. In solchen Fällen kann es wünschenswert sein, nur eine kleine Gruppe  von
       Kerneln    (im    Idealfall   nur   einen)   zu   verwenden   und   den   systemspezifischen   Teil   der
       Konfigurationsinformationen so klein wie möglich zu halten. Erstellen Sie für diesen Fall eine gemeinsame
       Datei mit allen benötigten Modulen. Dann muss nur die Datei /linuxrc oder eine von  /linuxrc  ausgeführte
       Datei individuell angepasst werden.

       Ein   drittes   Szenario  sind  komfortable  Reparatur-CDs.  Weil  Informationen  wie  die  Position  der
       Wurzeldateisystem-Partition zur Boot-Zeit nicht erforderlich sind,  kann  das  aus  /dev/initrd  geladene
       System  einen  Dialog  und/oder  eine automatische Erkennung verwenden und dem eine Plausibilitätsprüfung
       folgen lassen.

       Nicht zuletzt können Linux-Distributionen auf CD-ROM initrd für die einfache Installation von der  CD-ROM
       verwenden.  Die  Distribution  kann  LOADLIN verwenden, um /dev/initrd direkt von der CD-ROM zu laden und
       Disketten überflüssig zu machen. Die Distribution könnte auch eine LILO-Bootdiskette verwenden  und  dann
       über /dev/initrd eine größere RAM-Disk von der CD-ROM laden.

DATEIEN

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

ANMERKUNGEN

       •  Beim  aktuellen  Kernel  kann  auf Dateisysteme, die während der Verschiebung von /dev/ram0 von / nach
          /initrd eingehängt waren, weiterhin zugegriffen werden. Die Einträge in /proc/mounts werden aber nicht
          aktualisiert.

       •  Mit dem aktuellen Kernel wird bei fehlendem /initrd /dev/ram0 nicht völlig ausgehängt werden, wenn  es
          von  einem  Prozess  verwendet  wird  oder in /dev/ram0 ein Dateisystem eingehängt ist. Wenn /dev/ram0
          nicht vollständig ausgehängt ist, verbleibt /dev/ram0 im Speicher.

       •  Anwender von /dev/initrd sollten sich nicht auf  das  in  diesen  Anmerkungen  beschriebene  Verhalten
          verlassen. Das Verhalten kann sich in zukünftigen Kernel-Versionen ändern.

SIEHE AUCH

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

       Documentation/admin-guide/initrd.rst     (oder    Documentation/initrd.txt    vor    Linux    4.10)    im
       Linux-Kernelquelltext-Verzeichnis und die Dokumentationen von LILO, LOADLIN und SYSLINUX

ÜBERSETZUNG

       Die   deutsche    Übersetzung    dieser    Handbuchseite    wurde    von    Martin    Eberhard    Schauer
       <Martin.E.Schauer@gmx.de>,  Mario  Blättermann  <mario.blaettermann@gmail.com>  und  Dr. Tobias Quathamer
       <toddy@debian.org> erstellt.

       Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder  neuer
       bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

       Wenn  Sie  Fehler  in  der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die
       Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org.

Linux man-pages 6.9.1                             15. Juni 2024                                        initrd(4)