Provided by: manpages-de_4.18.1-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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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⟩.