Nächste Vorhergehende Inhalt

7. Das Dateisystem

In diesem Kapitel benutze ich das Wort "Dateisystem" in zwei verschiedenen Zusammenhängen. Es gibt Dateisysteme auf einer Partition und Geräte und es gibt ein Dateisystem auf einem Linux System, welches Ihnen zur Verfügung gestellt wird. Sie "mounten" ein Dateisystem auf einem Linux in das System-Dateisytem.

Im vorhergehenden Kapitel erwähnte ich, das die init Scripte das Dateisystem überprüfen und einhängen. Die Kommandos, die dies tun sind fsck und mount.

Eine Festplatte ist nur ein großer Platz, wo Sie Einsen und Nullen reinschreiben können. Ein Dateisystem bildet eine Struktur auf diesen und läßt es aussehen, wie Dateien in einem Verzeichnis, in einem Verzeichnis,... Jede Datei wird repräsentiert von einer inode, welche sagt, wessen Datei es ist, wann sie erstellt wurde und wo ihr Inhalt zu finden ist. Verzeichnisse werden auch durch inodes repräsentiert, aber diese sagen, wo die inodes der Dateien in den Verzeichnissen zu finden sind. Wenn das System die Datei /home/greg/bigboobs.jpeg lesen möchte, findet es zuerst die inode für das root Verzeichnis / im "superblock", dann findet es die inode für das Verzeichnis home im Inhalt von /, dann findet es die inode für das Verzeichnis greg im Inhalt von /home, dann die inode für bigboobs.jpeg welches schließlich aussagt, welches Dateisegment zu lesen ist.

Wenn wir etwas an eine Datei anfügen könnte es passieren, daß die Daten geschrieben sind, bevor die inode upgedated wurden um zu sagen, das dieser Block zu dieser Datei gehört. Wenn nun der Strom ausfällt, ist das Dateisystem beschädigt. Dies ist, was fsck festzustellen und zu reparieren versucht.

Das mount Kommando nimmt das Dateisystem eines Gerätes und bindet es in der Struktur, die Sie auf Ihrem system sehen können, ein. Gewöhnlich mounted der Kernel seine root Dateien im System nur lesend. Das mount Kommando wird benutzt um sie lesend und schreibend zu remounten nachdem fsck überprüft hat ob alles o.k. ist.

Linux unterstützt auch andere Dateisysteme: msdos, vfat, minix und so weiter. Die Details der speziellen Dateisysteme werden behandelt vom virtuelllen Dateisystem (VFS). Ich möchte nicht ins Detail gehen. Es gibt eine Abhandlung darüber in "The Linux Kernel" (siehe Sektion Der Linux Kernel)

Ein komplett anderes Dateisystem wird unter /proc eingebunden. Es ist eine Darstellung aller Geschehnisse im Kernel. Es gibt ein Verzeichnis für jeden Prozess der auf dem System läuft, mit der Prozessnummer als Verzeichnisname. Es gibt auch Dateien, wie interrupts, und meminfo welche Ihnen sagen, wie die Hardware benutzt wird. Sie können eine Menge von /proc lernen.

7.1 Konfiguration

Es gibt Parameter zum Kommando mke2fs welche ein ext2 Dateisystem erzeugen. Diese kontrollieren die Größe der Blocks, die Nummern der inodes und so weiter. Schauen Sie auf die mke2fs Hilfeseiten für Details.

Was auf Ihrem Dateisystem, wo eingebunden wird, finden Sie in der Datei /etc/fstab. Diese hat auch eine Hilfeseite.

7.2 Übungen

Erstellen Sie ein sehr kleines Dateisystem und sehen Sie es sich mit einem HexEditor an. Identifizieren Sie inodes, superblocks und Datei Inhalte.

Ich denke es gibt Werkzeuge, die Ihnen das Dateisystem grafisch anzeigen. Finden Sie eines, probieren Sie es aus und mailen Sie mir die URL!

Finden Sie den ext2 Dateisystemcode im Kernel.

7.3 Mehr Informationen


Nächste Vorhergehende Inhalt