Was ist der Unterschied zwischen initrd und initramfs?


12

Ich würde gerne wissen, was ist der Unterschied zwischen initrdund initramfs?

Antworten:


12

Initrd ist veraltet und wird durch Initramfs ersetzt, das einige der Schwächen von initrd nicht aufweist:

  • Initrd setzt voraus, dass mindestens ein Dateisystemtreiber im Kernel kompiliert ist
  • Eine von Initrd erstellte Festplatte muss eine feste Größe haben
  • Alle Lese- / Schreibvorgänge auf Initrd werden redundant (unnötigerweise) in den Hauptspeicher gepuffert

Ich denke, das ist alles.


Wie generiert dieser Befehl update-initramfs /boot/initrd.img?

Es wandelt die erforderlichen Dateien in ein cpio Archiv um , bei dem es sich um ein binäres Archivformat handelt ( tardas dem unter Linux nicht häufig verwendeten sehr ähnlich ist ), und verwendet dann gzip, um dieses Archiv zu komprimieren . Gzip ist kein Archiv, sondern nur eine Komprimierung (weshalb Sie .tar.gz-Archivdateien erhalten).

Beim Booten wird das Archiv dekomprimiert und auf eine    RAM-Disk entpackt .

Siehe auch: Wie ein Computer startet


"Initrd erfordert, dass mindestens ein Dateisystemtreiber in den Kernel kompiliert wird". Könnten Sie das bitte erklären?
Sen

Normalerweise können Dateisystemtreiber nach Belieben auf das Betriebssystem geschraubt werden, für einige Dinge müssen sie direkt in den Kernel kompiliert werden. Das ist ein Schmerz, da alle Kernel-Versionen angepasst werden müssen, größer werden, zusätzliche Abhängigkeiten einführen und so weiter. (Zumindest glaube ich, dass dies der Fall ist, es könnte falsch sein, ich habe keine besonderen Kenntnisse über Dateisysteme)
Stefano Palazzo

Ist es so, dass initramfs nicht erst gemountet werden muss ??
Sen

Alle Dateisysteme müssen eingehängt werden, bevor sie verwendet werden können. Wenn Sie mehr über initramfs erfahren möchten, werfen Sie einen Blick auf en.wikipedia.org/wiki/Initrd - es gibt eine weitaus detailliertere Erklärung.
Stefano Palazzo

Wie generiert dieser Befehl update-initramfs /boot/initrd.img?
Sen

3
  • initrd war blockgerätbasiert, initramfs ist dateibasis.

  • Mit initrd haben Sie ein Dateisystem-Image erstellt. Mit initramfs erstellen Sie ein Archiv mit den Dateien, die der Kernel in ein tmpfs extrahiert.


kannst du mir bitte die schritte vom starten bis zum laden und lesen von initramfs erklären?
Sen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.