Was ist der Unterschied zwischen Initramfs und dem eigentlichen Hauptdateisystem?

Was ist der Unterschied zwischen Initramfs und dem eigentlichen Hauptdateisystem?

initramfsist ein temporäres Dateisystem, das zum Starten des Systems verwendet wird und nach dem Mounten die Kontrolle an das Stamm-FS (Dateisystem) übergibt. Der Grund, warum ich nicht einfach das RAMFS für meine Aufgaben verwenden kann, ist, dass alles, was Sie speichern, nicht erhalten bleibt, sondern bei jedem Neustart gelöscht wird.

Aber ein gemountetes Root-Dateisystem KANN beschrieben werden und merkt sich Dinge, selbst wenn Sie den Strom ausschalten. Warum ist das so? Wie kommt es, dass das Root-Dateisystem Änderungen aufzeichnen kann, Initram-Dateisystem aber nicht?

Und was noch wichtiger ist: Wo soll dieses Root-Dateisystem sein? Ich schaue in die Root-Partition und sehe das uinitfs.image, aber ich sehe kein anderes Archiv, das das Root-Dateisystem sein soll, das ich mounten werde. Wo ist das physisch gespeichert?

Antwort1

Das initramfs ist ein komprimiertes Image, das normalerweise in gespeichert ist /boot(auf meinem CentOS 7-Rechner habe ich beispielsweise /boot/initramfs-3.10.0-327.18.2.el7.x86_64.img). Dies kann ein gzipptes cpio-Archiv sein.

z.B

sudo gzip -dc /boot/initramfs-3.10.0-327.4.5.el7.x86_64.img | cpio -t | head
.
etc
etc/modprobe.d
etc/modprobe.d/mlx4.conf
etc/ld.so.conf.d
etc/ld.so.conf.d/kernel-3.10.0-327.3.1.el7.x86_64.conf
etc/ld.so.conf.d/kernel-3.10.0-327.4.4.el7.x86_64.conf
etc/ld.so.conf.d/kernel-3.10.0-229.20.1.el7.x86_64.conf
etc/ld.so.conf.d/mariadb-x86_64.conf
etc/ld.so.conf.d/kernel-3.10.0-327.4.5.el7.x86_64.conf

Hier wird der erforderliche Mindestsatz an Routinen gespeichert, um das Betriebssystem in einen Zustand zu versetzen, in dem es das Root-Gerät sehen kann. Beispielsweise kann es die Treiber enthalten, die für die Kommunikation mit Ihren HBAs erforderlich sind.

Dieses wird beim Booten in den RAM entpackt und ausgeführt. Da es sich um ein RAM-Image handelt, gehen alle Änderungen verloren.

Sobald die echte Root-Platte gefunden wurde, wird sie gemountet und root wechselt zu dieser. Der Bootvorgang wird dann wie gewohnt fortgesetzt. Da es sich bei dieser Root um ein echtes Dateisystem (kein Speicherabbild) handelt, sind hier gespeicherte Änderungen dauerhaft.

verwandte Informationen