Page 1 of 1

wozu ist die initrd da?

Posted: 29. Aug 2007 14:09
by sesame
Hallo,

wozu ist eigentlich die initrd-datei (init ramdisk) da?
kann der kernel nicht alleine laden?

Posted: 29. Aug 2007 15:17
by Janka
Die initrd (oder neuerdings auch initramfs) ist ein Mini-Dateisystem, das der Bootloader (Grub, LILO) parallel zum Kernel in den Speicher lädt. Der Kernel startet in diesem Fall zunächst das Programm "linuxrc" in dieser initrd, statt wie üblich /sbin/init aus dem /-Dateisystem.

Prinzipiell kann man da alles reinpacken, was man möchte, aber der eigentliche Sinn besteht darin, dort die Treibermodule hineinzukopieren, die für das Laden des /-Dateisystems notwendig sind (z.B. SCSI/ATA-Treiber und Dateisystemtreiber). Das ist praktisch, weil man dann nämlich nur einige kleine, vorkompilierte Treibermodule aus einer riesigen Auswahl von möglichen Treibern kopieren muss, anstatt den ganzen Kernel passend zu kompilieren.

Letzteres kann man natürlich auch tun, dann benötigt man keine Treibermodule zum Booten und kann auf die initrd verzichten. Allerdings ist dieser Kernel dann natürlich nur noch auf dieser oder sehr ähnlich bestückten Maschinen lauffähig. Also nichts für Standard-Kernel von Installationsmedien.

Janka

Posted: 30. Aug 2007 9:53
by sesame
vielen dank für die aufklärung.
:-)