Initrd

initrd ist ein temporäres Dateisystem, das vom Linux-Kernel während des Bootvorgangs verwendet wird.

„initrd“ steht für initial ramdisk (sinngemäß übersetzt Ausgangspartition im Arbeitsspeicher). Die initrd ist ein reservierter Bereich im Arbeitsspeicher, der vom Kernel wie eine Festplattenpartition behandelt wird (siehe auch RAM-Disk). Sie enthält das Abbild eines Dateisystems mit den zum Start des Systems benötigten Dateien. Die initrd kann vom Linux-Kernel und anderen Unix-verwandten Betriebssystemen beim Booten als Stammverzeichnis eingehängt werden. Anschließend wird ein auf der initrd vorhandenes Programm (linuxrc) gestartet. Bei eingebetteten Systemen kann die ganze Funktionalität des Systems in der initrd enthalten sein. Personal Computer nutzen die initrd oft nur als einen Zwischenschritt, um Treiber zu laden und andere Vorbereitungen für den Start des eigentlichen Systems zu treffen. Durch die initrd wurde es möglich, den Bootprozess unter Linux flexibler zu gestalten und Funktionalität aus dem Betriebssystemkern in den Userspace auszulagern.

Zum Erstellen von initrd-Abbildern wird gewöhnlich das Programm mkinitrd verwendet. Neben diesem gibt es weitere Alternativen wie z. B. Yaird[1] und Dracut[2]. Das Dracut-Projekt ist mittlerweile Teil des Kernel-Projekts.[3]

Unterschiede zu initramfs

initrd ist veraltet bzw. abgelöst von initramfs, welches manche Schwächen von initrd nicht mehr hat:

  • initrd erfordert mindestens einen in den Kernel einkompilierten Dateisystemtreiber.
  • Die initrd hat eine feste Größe.
  • Alle Zugriffe auf die initrd werden noch einmal im Arbeitsspeicher gepuffert.

Einzelnachweise

  1. Yaird, Yet Another Mkinitrd (Memento vom 8. Februar 2006 im Internet Archive) Abgerufen am 7. Juni 2011.
  2. dracut Abgerufen am 7. Juni 2011.
  3. Dracut-Wiki beim Kernel-Projekt: