Zurück

Das EXT2 Dateisystem


Im Wesentlichen entspricht das Second Extended Filesystem (EXT2) von Linux dem Unix-Inode-System, das an anderer Stelle schon beschrieben wurde. Es gibt aber ein paar wesentliche Unterschiede, die hier kurz erläutert werden sollen.

Der Aufbau einer EXT2 Inode

Die wesentlichen Unterschiede des EXT2 Systems zum "normalen" I-Node-System liegen in der Struktur der I-Nodes selbst. Hier sind einige Felder hinzugekommen, die für bestimmte Erweiterungen vorgesehen wurden, die im folgenden genauer erklärt werden. Doch zunächst einmal die Struktur der Inode selbst:

permission links owner group
size creation time
modification time access time
deletion time blockcount
flags file version (NFS)
file ACL dir ACL
fragment addr. fr. size frag. nr reserved
1. block data 2. block data
3. block data 4. block data
5. block data 6. block data
7. block data 8. block data
9. block data 10. block data
11. block data 12. block data
simple indirect double indirect
triple indirect reserved
reserved reserved

Die wesentlichen Unterschiede zum bisher beschriebenen I-Node-System sind:

Die Flags des EXT2 Filesystems

Jede Datei in einem EXT2 Dateisystem kann neben den normalen Unix-Zugriffsrechten noch einen Satz zusätzlicher Flags bekommen, die hier noch erläutert werden sollen. Um sich die Flags (oder auch Attribute) anzusehen, wird das Programm lsattr benutzt, zum Ändern der Attribute wird chattr benutzt. Es gibt die Attribute A,a,c,d,i,S,s und u.

Erweiterungen des Superblocks

Der Superblock eines EXT2-Dateisystems enthält ein sogenanntes Valid-Flag. Sobald dieses Dateisystem gemountet wird, wird das Valid-Flag gelöscht. Erst beim Umount wird es wieder gesetzt. Sollte das System abstürzen, so bleibt das Valid-Flag ungesetzt - beim nächsten Start kann also erkannt werden, daß dieses Dateisystem nicht ordnungsgemäß abgehängt worden ist.

Das Programm zur Überprüfung eines EXT2 Dateisystems (e2fsck) überprüft dieses Valid-Flag und prüft (falls es nicht durch die -f Option gezwungen wurde) nur dann das Dateisystem, wenn das Valid-Flag nicht gesetzt war. So kann beim Systemstart einfach für jede Partition das e2fsck-Programm aufgerufen werden. Es wird nur dann aktiv, wenn es nötig ist.

Der Superblock enthält weiterhin eine Angabe über die maximale Anzahl von Mount-Vorgängen, die zwischen zwei System-Checks ablaufen dürfen. Jedesmal, wenn ein Dateisystem gemountet wird, wird ein Zähler (mount-count) um eins erhöht. Wird bei einem Systemstart festgestellt, daß der Wert des Zählers den Wert der maximalen Mountvorgänge überschreitet, so wird ein Systemcheck erzwungen.

Im Superblock steht noch eine Angabe, die festlegt, wieviel Prozent eines Dateisystems für den Superuser root reserviert wird. Standardmäßig sind es 5 Prozent.

Um diese Werte zu manipulieren steht das Programm tune2fs zur Verfügung. Dieses Programm sollte aber nur für Dateisysteme verwendet werden, die gerade nicht read-write gemountet sind!