ext

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Ein Terminal öffnen

  2. Einen Editor öffnen

  3. Root-Rechte

Inhaltsverzeichnis
  1. Die bisherigen ext-Versionen
    1. ext2
    2. ext3
    3. ext4
  2. tuneables
    1. Automatische Dateisystemüberprüfung
    2. Verhalten im Fehlerfall
    3. Reservierte Blöcke
    4. Identifizierung
      1. Einstellungen für das Journal ändern
    5. Setzen / Ändern ext-Optionen
    6. Weitere Optionen
  3. ext unter Windows
  4. ext unter Mac OS X / macOS
  5. Upgrade von ext
    1. ext2 zu ext3
    2. ext3 zu ext4
  6. Downgrade von ext
    1. ext3 zu ext2
    2. ext4 zu ext3
  7. Problemlösungen
    1. Superblock
    2. Unzureichende Rechte vorhanden
  8. Links

Im Gegensatz zu den unter Windows verwendeten Dateisystemen FAT32 und NTFS, die auf einer Tabellenstruktur basieren, verwenden ext-Dateisysteme eine Baumstruktur zum Speichern des Laufwerksinhaltes. Die Knoten dieser Baumstruktur bestehen aus Inodes (Kurzwort aus "index node"). Diese Inodes speichern entweder direkte Verweise auf Festplattenblöcke mit kleinen Dateien oder einen Verweis auf einen weiteren Block, in dem die Datenblöcke größerer Dateien gespeichert sind. Ein Inode hat eine Mindestgröße von 128 Byte.

Informationen über das Dateisystem werden im ersten Block, im Superblock des Dateisystems, gespeichert. Hier finden sich alle Optionen des Dateisystems, die sich auch mit dem Befehl tune2fs manipulieren lassen. Außerdem findet sich dort ein Verweis auf die Inode-Struktur des zu Grunde liegenden Dateisystems.

Hinweis:

Alle ext-Dateisystemen werden in bestimmten Abständen automatisch überprüft. Dies geschieht im Regelfall bei dem Starten des Systems. Falls sich also der Start plötzlich deutlich verlängert, ist das der automatischen Überprüfung geschuldet und kein Anlass zur Panik.

Die bisherigen ext-Versionen

ext2

Lange Jahre war das robuste ext2 das Standarddateisystem unter Linux. Es ist prinzipiell schneller als seine Nachfolger, die mehr Verwaltungsaufwand betreiben. Allerdings gibt es ein großes Manko: bei einem Systemabsturz oder einem "harten" Ausschalten des Systems muss das Dateisystem beim Neustart ausführlich und zeitintensiv geprüft werden.

ext3

Durch die Einführung einer Journaling-Funktion entfallen die langwierigen Prüfungen des Dateisystems wie noch bei ext2, was sich insbesondere nach einem Problemfall zeitlich positiv bemerkbar macht. Bis Ubuntu 9.04 Jaunty Jackalope war ext3 das Standarddateisystem von Ubuntu. Auf älteren Systemen mit wenig Hauptspeicher immer noch sinnvoll.

ext4

Vorteile gegenüber den Vorgängern liegen insbesondere in der aggressiveren Nutzung des Arbeitsspeichers durch Puffer-Mechanismen (Cache) sowie sehr viel schnelleren Dateisystemchecks. Bei Ubuntu ist ext4 die Standardeinstellung.

tuneables

Änderungen an den Einstellungen des Dateisystems nimmt man mittels des Kommandozeilenwerkzeugs tune2fs vor. Diese Einstellungen bleiben wirksam, solange nicht andere Optionen in der fstab gesetzt werden. Mit PARTITION ist immer der Devicenode (z.B. /dev/sda1) gemeint, nicht der Mountpunkt. Das Zeichen | bezeichnet (nicht ganz korrekt) eine Entweder-Oder-Auswahl.

Automatische Dateisystemüberprüfung

ext-Partitionen werden nach einer gewissen Anzahl von mount-Vorgängen durch e2fsck auf ihre Konsistenz hin überprüft. Diese Anzahl lässt sich mit tune2fs bequem verändern bzw. einstellen.

-c: Der Parameter -c beeinflusst, nach wie vielen mounts die entsprechende Partition beim Systemstart auf Fehler überprüft wird. 0 heißt hierbei, dass keine Überprüfung stattfinden soll (Standardeinstellung ist 30 mounts).

sudo tune2fs -c ANZAHL PARTITION 

-i: Neben der Möglichkeit das Dateisystem nach einer gewissen Anzahl von mount-Vorgängen per e2fsck überprüfen zu lassen, gibt es auch bzw. zusätzlich die Möglichkeit die maximale Anzahl zwischen zwei Überprüfungen festzulegen - in Tagen, Wochen oder Monaten. Natürlich lassen sich diese Parameter auch mit tune2fs anpassen.

sudo tune2fs -i ANZAHL_EINHEIT PARTITION 

Beispiel: Möchte man z.B. das maximale Intervall für die Partition /dev/sda2 auf 28 Tage festlegen, muss man Folgendes eingeben:

sudo tune2fs -i 28d /dev/sda2 

Für Wochen dient w, für Monate m.

Ähnlich zur Anzahl der mount-Vorgänge lässt sich auch das Intervall komplett ausschalten. Hier setzt man die Anzahl einfach auf 0 (hier im Beispiel für Partition /dev/hda2):

sudo tune2fs -i 0d /dev/sda2 

Achtung!

Die Überprüfung des Dateisystems auf Konsistenz ist eine sehr wichtige Angelegenheit. Es sollte also wenigstens immer eine Überprüfungsvariante (nach Intervall oder nach Anzahl der mount-Vorgänge) eingeschaltet bleiben. Daher wird nicht empfohlen, die komplette Überprüfung einer Partition auszuschalten.

Verhalten im Fehlerfall

Falls e2fsck ein fehlerhaftes Dateisystem feststellt, kann sich das System auf verschiedene Arten verhalten. Dies ist auch mit tune2fs einstellbar. Bei fehlerhaftem "superblock" siehe Problemlösung Superblock.

-e: Das System kann entweder mit continue fortfahren, mit remount-ro die Partition schreibgeschützt erneut mounten oder mit panic einen Kernel Panic auslösen.

sudo tune2fs -e <continue|remount-ro|panic> PARTITION 

-f: Manchmal treten beim Ausführen von tune2fs-Funktionen Fehler auf. Mit Hilfe der Zusatzfunktion force, kann man versuchen, diese Fehler zu ignorieren und tune2fs dennoch zum Ausführen der Funktionen zu bewegen. Ein Beispiel hierzu: Ist das Dateisystem korrupt, lassen sich vielleicht auf normalem Wege die tune2fs-Funktionen nicht mehr ausführen. Die Option force kann zudem nützlich sein, falls man von einem Journaling Filesystem (ext3 und ext4) das Journal entfernen möchte.

sudo tune2fs -f BEFEHLE PARTITION 

Achtung!

Bei der Anwendung der force-Option sollte man genau wissen, was man tut. Das Entfernen eines Journals kann zu Datenverlust und einem nicht funktionierenden Dateisystem führen!

Reservierte Blöcke

Ein gewisser Anteil an Speicherplatz wird von ext-Dateisystemen reserviert, um im Fall eines Volllaufens der Festplatten dem Systemadministrator root noch die Anmeldung und das Korrigieren des Zustands zu ermöglichen.

-r: Der Parameter -r beeinflusst die Anzahl der reservierten Blocks. -r erwartet die Angabe einer absoluten Anzahl von Blocks.

sudo tune2fs -r ANZAHL_RESERVIERTER_BLOCKS PARTITION 

-m: Der Parameter -m beeinflusst, wieviel Prozent des Dateisystems reserviert bleiben. Hierbei muss nur die Zahl angegeben werden, nicht das %-Zeichen.

sudo tune2fs -m WERT PARTITION 

Hinweis:

Häufig liest man den Tipp, die Anzahl der reservierten Blocks auf 0 zu setzen. Das ist nicht empfehlenswert, da in diesem Bereich unter anderem beim Schreiben Platz vorgesehen wird, um die Fragmentierung des Dateisystems zu vermeiden. Allerdings kann man außerhalb der /-Partition problemlos einen Wert von unter 5% einstellen. Tipp: Auch Kommastellen wie 0.2 (Punkt statt Komma) sind möglich.

-g: Mit dem Parameter -g kann der reservierte Speicher einer anderen Benutzergruppe zur Verfügung gestellt werden.

sudo tune2fs -g <GruppenId bzw. Gruppenname> PARTITION 

-u: Mit dem Parameter -u kann der reservierte Speicher anderen Benutzern zur Verfügung gestellt werden.

sudo tune2fs -u <BenutzerId bzw. Benutzername> PARTITION 

Identifizierung

-U: Der Parameter -U manipuliert die UUID des Dateisystems. Hierbei ist es möglich, die UUID mit clear zu löschen, eine neue mit random erstellen zu lassen, eine zeitabhängige Pseudozufallszahl mit time zu setzen oder eine benutzerdefinierte UUID (zum Beispiel per uuidgen in der Konsole erstellt) zu verwenden.

sudo tune2fs -U <UUID|clear|random|time> PARTITION 

-L: Mit -L kann man dem Dateisystem zusätzlich zur UUID einen Namen geben, der auch in Mount-Vorgängen verwendet werden kann.

sudo tune2fs -L NAME PARTITION 

Einstellungen für das Journal ändern

ext3 und ext4 schreiben standardmäßig ein Journal, welches die Wiederherstellung von Daten nach einem unerwartetem Absturz des Systems (z.B. durch einen Stromausfall erleichtert). Falls nicht aktiviert kann das Journal auch nachträglich hinzugefügt (Option -j) oder die Optionen für das Journal geändert werden (Option -J). Außerdem kann das Journal auch deaktiviert werden, was für "wichtige" Partitionen wie Root, Home oder Boot nicht empfehlenswert ist.

-j: Der Parameter -j fügt dem Dateisystem ein Journal hinzu. Wird kein Parameter mit -J gesetzt, werden die Standardvorgaben benutzt.

sudo tune2fs -j PARTITION 

-J: Der Parameter -J manipuliert das zu erstellende Journal eines ext3 oder ext4-Dateisystems. Hierbei kann man mit size= die Größe des Journals in Blocks angeben. Mindestgröße sind 1024 Blocks, der maximale Wert beträgt 102.400 Blocks. Alternativ kann das Journal mit device auf einer anderen Partition gespeichert werden. Das externe Journal muss aber bereits mit

sudo mke2fs -O journal_dev external-journal 

erstellt worden sein. external-journal darf ein Devicenode, ein Label oder eine UUID sein.

sudo tune2fs -J <size=<Anzahl>|device=external-journal> PARTITION 

Das Dateisystem kann auch ohne Journal genutzt werden. Das standardmäßig aktivierte Journal kann über den Befehl

tune2fs -O ^has_journal PARTITION 

deaktiviert werden. Danach empfiehlt es sich, einen Dateisystemcheck zu machen.

Setzen / Ändern ext-Optionen

Option für das Dateisystem werden mit den Optionen -o und -O gesetzt:

-o: Mount-Optionen werden mit ^ entfernt und mit + hinzugefügt. Mehrere Optionen werden durch Kommata separiert aufgezählt. Nach dem Komma darf kein Leerzeichen stehen!

sudo tune2fs -o <^|+><Option>[,<^|+><Option2>,...] PARTITION 

-O: Dateisystem-Optionen werden mit ^ entfernt und mit + hinzugefügt. Mehrere Optionen werden durch Kommata separiert aufgezählt. Nach dem Komma darf kein Leerzeichen folgen!

sudo tune2fs -O <^|+><Option>[,<^|+><Option2>,...] PARTITION 

Weitere Optionen

-C: Der Parameter -C beeinflusst direkt die gespeicherte Anzahl der Mount-Vorgänge einer Partition. Setzt man den Zähler (Count) auf eine Zahl größer als den mit -c eingestellten Wert, wird ein Dateisystemcheck beim nächsten Start erzwungen.

sudo tune2fs -C ANZAHL PARTITION 

-T: Der Parameter -T beeinflusst den gespeicherten Zeitpunkt des letzten Mount-Vorgangs. Das Datum wird im internationalen Datumsformat JJJJMMTT erwartet. Die Angabe der Uhrzeit ist optional, now ist ebenfalls erlaubt. Setzt man die Zeit auf einen Wert, der länger als das mit -i definierte Intervall vom Zeitpunkt des letzten Überprüfungsvorgangs entfernt ist, wird beim nächsten Start eine Überprüfung des Dateisystems erzwungen.

sudo tune2fs -T <Datum|now> PARTITION 

-M: Mit -M manipuliert man die gespeicherte Angabe des letzten Mountpunktes einer Partition.

sudo tune2fs -M <Mountpunkt> PARTITION 

-l: Ausgabe der ext-Optionen. Hierbei werden alle Optionen angezeigt, die mittels tune2fs manipulierbar sind.

sudo tune2fs -l PARTITION 

ext unter Windows

Wie man ext-Partitionen unter Windows einbindet, behandelt der Artikel: Linux-Partitionen unter Windows.

ext unter Mac OS X / macOS

Für Mac OS X gibt es aktuell(Stand: 9.Feb.2017/OSX 10.12 Sierra) nur die Möglichkeit, über den kommerziellen ExtFS-Treiber v10.1.109(Stand: Feb.2016) von Paragon-Software lesend & schreibend auf ext2/ext3/ext4*-Partitionen zuzugreifen.

| * Ein Großteil der neuen Funktionen von Ext4 werden jetzt unterstützt: 64bit, dir_index, extent, extra_isize, ext_attr, flex_bg, has_journal.

| * Diese Funktionen von Ext4 werden noch nicht unterstützt: bigalloc, journal_dev, meta_bg.

ExtFS für Mac OS X 🇩🇪

Für nur ext2 steht noch der OpenSource-Treiber fuse-ext2 in der Version 0.0.7 (Stand: 5.Dez.2013) zur Verfügung. Dieser wurde aber seit 2009 nicht mehr weiterentwickelt. Daher ist es mit diesem nicht empfehlenswert, schreibend auf ext3- oder gar ext4-Partitionen zuzugreifen. Vor der Installation von fuse-ext2 muss desweiteren OSXFUSE 🇬🇧 unter Mac OS X installiert sein.

fuse-ext2 🇬🇧

Upgrade von ext

ext2 zu ext3

Das Upgrade von ext2 zu ext3 geschieht durch Hinzufügen eines Journals.

ext3 zu ext4

Das Upgrade von ext3 auf ext4 beschreibt der Artikel Upgrade auf ext4.

Downgrade von ext

ext3 zu ext2

Ein Downgrade von ext3 zu ext2 ist möglich, indem man das Journal löscht.

ext4 zu ext3

Ein Downgrade von ext4 auf ext3 ist im Normalfall ohne Neuformatierung nicht möglich. In diesem Fall ist eine Datensicherung und ein Neuanlegen des Dateisystems fällig. Sobald Features wie Extents 🇬🇧 benutzt werden, was normalerweise automatisch beim nächsten schreibenden Zugriff passiert, ist die Umstellung auf Ext4 unumkehrbar.

Problemlösungen

Superblock

Für den Fall, dass beim Mounten einer Partition - hier beispielhaft für /dev/sda5 - der Fehler

"Bad superblock on /dev/sda5 error"

erscheint, so kann man das aufgrund der Struktur von ext in den meisten Fällen reparieren - zumindest kann man damit die Daten retten.

Die nicht eingebundene Partition wird mit der Eingabe in ein Terminal [1]

sudo mke2fs -n /dev/sda5 

nach den Sicherungen der Superblöcke abgefragt. Damit wird eine Liste generiert, die beispielhaft am Ende so aussehen kann:

Superblock-Sicherungskopien gespeichert in den Blöcken: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000

Dieses sind die Adressen der Sicherungen des Superblocks, diese können nun anstelle des fehlerhaften Superblocks im Terminal [1] eingesetzt werden mit:

sudo e2fsck -y -b ADRESSE /dev/sda5 

(die Option -y unterbindet eine Interaktion) und setzt damit die neue Adresse von einem (nun hoffentlich noch lesbaren) Superblock. Danach sollte das Mounten dieser Partition wieder funktionieren.

Unzureichende Rechte vorhanden

Nach dem Neuanlegen eines zusätzlichen Datenträgers zur Datenspeicherung, der zunächst keine ausreichenden Zugriffsrechte hat, sollte man die Rechte des Ordners des Datenträgers (Besitzer und Gruppe) auf den eigenen Benutzer bzw. plugdev setzen:

sudo chown $USER:plugdev /media/BENUTZER/GERÄT 

/media/BENUTZER/GERÄT muss für das gewünschte Gerät eingesetzt werden.