Provided by: manpages-de_2.14-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 Root-Dateisystem 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  Root-Geräts
       geladen. Nach dem Laden der zusätzlichen Module wird ein neues Root-Dateisystem (d. h. das
       normale Root-Dateisystem) 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
          Root-Dateisystem ein.

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

       5. Wenn im anfänglichen Root-Dateisystem 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
          Root-Dateisystem eingebunden. (Wenn /linuxrc beendet wird, wenn  noch  Dateisysteme  im
          anfänglichen Root-Dateisystem 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 Root-Dateisystem 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 Root-Dateisystem
          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
          Root-Dateisystem 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 Root-Dateisystem  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 Root-Dateisystem enthalten.

   Wechsel des normalen Root-Dateisystems
       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 Root-Dateisystem verwendet. Für ein  über  NFS  eingebundenes
       normales  Root-Dateisystem  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  Root-Dateisysteme  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 Root-Dateisystems finden sich
       in den Dokumentationen von LILO und LOADLIN.

       Die ausführbare Datei /linuxrc kann auch das normale Root-Gerät ändern. Damit /linuxrc das
       normale  Root-Gerät  ändern kann, muss /proc eingehängt sein. Nach dem Einhängen von /proc
       ändert  /linuxrc  das  normale  Root-Gerä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  physikalisches  Root-Gerät  wird  geändert,   indem
       /linuxrc  die  Gerätenummer  des neuen Root-Dateisystems in /proc/sys/kernel/real-root-dev
       schreibt. Für ein NFS-Root-Dateisystem wird das Root-Gerä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 Root-Gerät auf /dev/hdb1 ändern:

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

       Ein NFS-Beispiel: Die folgenden Shell-Befehlszeilen würden das normale Root-Gerä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
       Root-Dateisystems        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
       Root-Dateisystems.

   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
          Root-Dateisystems  (z.B.   Gerätetyp,   Gerätetreiber,   Dateisystem)   und   (2)   der
          Installationsmedien  (z.B.  CD-ROM,  Netzwerk,  Band, …) erforderlich ist. Sie kann den
          Benutzer danach fragen, die Geräte selbst suchen oder einen hybriden Ansatz verfolgen.

       3. Die ausführbare Datei  /linuxrc  lädt  die  notwendigen  Module  aus  dem  anfänglichen
          Root-Dateisystem.

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

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

       6. Der Kernel bindet dann das normale Root-Dateisystem 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  /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 Root-Dateisystem-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

       1. 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.

       2. 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.

       3. 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

KOLOPHON

       Diese  Seite  ist  Teil  der  Veröffentlichung  4.16  des  Projekts  Linux-man-pages. Eine
       Beschreibung des Projekts, Informationen, wie Fehler  gemeldet  werden  können  sowie  die
       aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

Ü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 <debian-l10n-german@lists.debian.org>.