Root Filesystem Flashcards
Welche Möglichkeiten gibt es ein RootFS bereitzustellen?
- Im Flash z.B. USB (endliche Schreibzyklen)
- ReadOnly(CdRom) mit tmpfs und Overlay
- Im RAM
- Image laden und mounten
Vorteile RootFS im RAM?
- Konsistentes Filesystem bei jedem Neustart
- Booten ohne Filesystemcheck
- Einfache Systemaktualisierung
- Eventuell Auswahl des Rootfilesystems (Debug/Test)
- Schneller Zugriff
- Auf RAM sind unbegrenzte Schreibzyklen möglich
Nachteile RootFS im RAM?
- Neustart -> Modifikationen am Root-Filesystem gehen
verloren, wenn diese nicht im Image durchgeführt
werden - Für die Ramdisk wird Hauptspeicher (RAM) benötigt (2–
8 Mbyte) - Logfile können zu groß werden
- Teils Statische Größe
- Ramdisk verbraucht Hauptspeicher.
- Die Daten sind doppelt
vorhanden: Flash / RAM
Was muss im Kernel aktiviert werden um RAMdisk zu einzusetzen?
Unter ‘Block Devices’ den Punkt ‘Ram Disk Support’ auswählen
Was passiert wenn im Kernel initrd Support aktiviert ist?
- Mit ’initrd’ Support packt der Kernel das komprimierte -
Root-FS Image aus und kopiert den Inhalt in eine RAM
Disk. - Der Kernel mounted die RAM Disk als Root
Danach:
- startet das Skript ’linuxrc’ auf dem Root Filesystem
Ablauf des Bootens mit RAMdisk?
Booten:
- Root-Image z.B. vom Flash geladen und im
Hauptspeicher abgelegt.
- Betriebssystemkern wird geladen und
gestartet.
- Root-Image auf Flash bleibt unangetastet
Vorteile RAMdisk?
Zugriff auf die Ramdisk ist schneller als Flash.
Limitiertes Schreiben bei Flash
Größe der Ramdisk frei wählbar.
Daten in Ramdisk ‘temporär’
Das Verfahren vereinfacht die Systemaktualisierung.
Nachteile RAMdisk?
Verbraucht RAM
Daten doppelt vorhanden Flash/RAM
Nicht persistent
Wie funktioniert der Boot über Netzwerk?
BIOS ruft Bootp auf
Bootp Request bekommt anhand MAC Konfig(IP Netzmaske etc.)
tftp macht Anfrage und holt Kernel und Root Image
Was ist ein VFS?
eine Mappersoftware, die spezifische
Dateisystemeigenscha!en auf das intern verwendete ’virtual filesystem’ umsetzt.
Beschreibe das initramfs.
- Das initramfs ist ein RootFS das für den Systemstart
benötigte Dateien enthält. - Das initramfs-Archiv kann im Kernel selbst enthalten
sein oder vom Bootloader aus einer Datei in den
Arbeitsspeicher geladen werden.
Der Kernel dekomprimiert das initramfs-Archiv und
hängt das entpackte Archiv dann als Stammverzeichnis
ein. - Dateien werden direkt in die kernelinternen -
- Datenstrukturen des VFS umgesetzt
- Wird mit tmpfs umgesetzt
- initramfs ist keine ramdisk(tmpfs)
Unterschied initramfs und initrd
initramfs Kernel 2.6
initial root filesystem and init programm in kernel memory cache not on ramdisk
initramfs -> cpio archive -> tmpfs
initramfs location of init : /init
initrd Kernel 2.4 deprecated file system driver compiled into kernel RAM Based Block device, wastes unused space, req file system fixed size
Wie ist der Bootprozess mit CPIO Archiv?
Bootloader: - Laden vmlinuz - Laden initramfs - Start Kernel Linux Kernel: - Initialisierung - Auspacken CPIO als RootFS - Start /init Early Userland: - Basisinit(treiber) - pivot_root - exec(/bin/init) Normaler Bootprozess...
Was macht pivot_root() initrd / switch_root() initramfs ?
- Allows to re-mount the root filesystem to a non-root
location, while simultaneously mounting something
back on the root. - early userland zu userland
Was wird über CONFIG_INITRAMFS_SOURCE festgelegt?
- Ob das Standard-Minimal-Rootfilesystem CPIO-
Archiv erzeugt - oder woher sonst die Daten für das CPIO-Archiv
genommen werden.