Zeile 73 mountet das Root-Filesystem vorübergehend nach »/mnt«; bei NFS erledigt Zeile 80 diesen Schritt. Über den Mountpoint legen die Zeilen 86 bis 92 ein Union-FS, sodass es nach dem Beenden des Initram-FS transparent über dem ganzen Root-Filesystem liegt. Zeile 95 räumt auf und übergibt die Kontrolle an den gewöhnlichen Bootprozess.
Für Init-Skripte mit wenigen einfachen Kommandos ist das Klibc-Paket eine gute Wahl. Es bringt neben der schlanken Kernel-C-Standardbibliothek eine einfache Shell mit und Befehle wie »mount«, »nfsmount« und »ipconfig«. Letzterer eignet sich für statische IP-Konfigurationen sowie als DHCP-Client. Das Initram-FS verpackt neben dem Init-Skript eine Shell, die gewünschten Hilfskommandos und alle verwendeten Bibliotheken.
Filesystem verpacken
Der Kernel erwartet »init« auf oberster Verzeichnisebene. Fürs Einpacken eignet sich folgendes Kommando:
cd Initramfs-Verzeichnis find . ! -name "*~" | cpio -H newc --create | gzip -9 > ../initramfs.gz
Der Find-Aufruf ignoriert Backup-Kopien, danach legt CPIO ein Archiv im portablen SVR4-Format an und Gzip komprimiert es nach Kräften.
Neben NBD gibt es weitere freie Implementierungen eines Netzwerk-Blockgeräts, etwa ENBD [4], GNBD [5] oder ANBD [6], siehe auch Tabelle 1. Deren Blockgerätetreiber sind noch kein Bestandteil des Kernels, auch die meisten Distributionen liefern sie nicht mit. Den Mehraufwand für eine Installation aus den Quellen belohnt ENBD mit Fehlerbehandlung, automatischem Wiederaufbau abgebrochener Verbindung, dem gleichzeitigen Benutzen mehrerer Kanäle und vielem mehr.
|
Tabelle 1: |
|
|---|---|
|
Name |
Erklärung |
|
NBD |
Das Network Block Device ist Vorläufer aller |
|
ANBD |
Another Network Block Device ist eine kompatible |
|
ENBD |
Das Enhanced Network Block Device wird von einem aktiven |
|
DNBD |
Das Distributed Network Block Device arbeitet mit UDP als |
|
GNBD |
Das Global Network Block Device ist die Basis für GFS |
ATA übers Netz
Mit AoE (ATA over Ethernet) gibt es eine Technik für blockorientierten Datenaustausch, die etwas an I-SCSI erinnert. Während Letzteres recht hohen Aufwand treibt beim Kapseln der SCSI-Aufrufe in IP-Paketen, was bei intensiver Plattenbenutzung eine erhebliche Last für die CPU bedeutet, begnügt sich AoE mit der Ethernet-Schicht. Es geht davon aus, dass die Verlagerung von Festplatten in das lokale Netzwerk nur in Bereichen mit ausreichend leistungsfähiger Ethernet-Infrastruktur stattfindet.
Funktauglich
Speziell für den Diskless-Betrieb in Funknetzen ist DNBD [7] gedacht (Distributed Network Block Device). In diesem Szenario assoziieren sich Clients mit einem Accesspoint und teilen sich die Sendefrequenz. Zu jedem Zeitpunkt sendet maximal ein Client. Bremsend wirkt auch die recht niedrige Bandbreite, bei den verbreiteten IEEE-Standards 802.11b/a/g sind es maximal 54 MBit/s. Weil sich alle Clients das Übertragungsmedium teilen, sinkt die verfügbare Datenrate mit jedem zusätzlichen Gerät, das gleichzeitig bootet.
DNBD versucht die anfallende Datenmengen so weit wie möglich zu minimieren und dabei die Besonderheiten eines Funknetzes auszunutzen. Es verzichtet dazu auf Locking-Mechanismen und erlaubt nur lesenden Zugriff. Zudem sehen alle angeschlossenen Clients den DNBD-Datenverkehr (Abbildung 6) und cachen jeden Block, den der Server ausliefert – egal für welchen Client er gedacht war. Die Chancen stehen gut, dass auch die anderen Clients diesen Block irgendwann brauchen.





