Ext4: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 113: Zeile 113:
  
 
=ext4 tuning eines Dateisystem=
 
=ext4 tuning eines Dateisystem=
 +
<code>tune2fs</code> ändert die Parameter eines bestehenden ext2/ext3/ext4-Dateisystems, ohne es neu anzulegen. Angewendet wird es auf die Partition, nicht auf ein gemountetes Verzeichnis. Die meisten Änderungen sind auch im eingehängten Zustand möglich; Ausnahmen nennt <code>tune2fs</code> selbst.
 +
 +
==Anzeigen von Informationen==
 +
Zeigt den Superblock-Inhalt: UUID, Label, Block- und Inode-Zahl, Features, Zähler und Prüfintervalle.
 +
*tune2fs -l /dev/sdg1
 +
 +
==Maximale Mount-Zahl bis zur Zwangsprüfung==
 +
Nach so vielen Mount-Vorgängen erzwingt das System beim nächsten Start eine Prüfung mit <code>fsck</code>. Hier: alle 30 Mounts.
 +
*tune2fs -c 30 /dev/sdg1
 +
 +
Auf den meisten aktuellen Distributionen ist diese Zwangsprüfung abgeschaltet (Wert 0), weil ein fsck-Lauf beim Booten unerwünscht ist. Abschalten:
 +
*tune2fs -c 0 /dev/sdg1
 +
 +
==Zeitintervall bis zur Zwangsprüfung==
 +
Prüfung nach einer festen Zeitspanne statt nach Mount-Zahl. Hier: alle zwei Monate (<code>d</code> Tage, <code>w</code> Wochen, <code>m</code> Monate).
 +
*tune2fs -i 2m /dev/sdg1
 +
 +
Auch dieses Intervall ist meist auf 0 gesetzt. Abschalten:
 +
*tune2fs -i 0 /dev/sdg1
 +
 +
==Größe des Journals festlegen==
 +
Legt die Größe des Journals fest, hier 32 MiB. Das ist die Größe des Journals selbst, kein Cache.
 +
*tune2fs -J size=32m /dev/sdg1
 +
 +
==Journaling ein- oder ausschalten==
 +
Journaling einschalten (macht aus ext2 praktisch ext3):
 +
*tune2fs -O has_journal /dev/sdg1
 +
 +
Journaling ausschalten – das vorangestellte <code>^</code> entfernt ein Feature:
 +
*tune2fs -O ^has_journal /dev/sdg1
 +
 +
==Dateisystem-Label ändern==
 +
Setzt das Label, über das die Partition auch in <code>/etc/fstab</code> als <code>LABEL=</code> angesprochen werden kann.
 +
*tune2fs -L daten-platte /dev/sdg1
 +
 +
==Für root reservierten Anteil ändern==
 +
<code>-m</code> setzt den Prozentsatz der Blöcke, die dem Superuser vorbehalten bleiben (Vorgabe 5 %). Das ist '''nicht''' die Zahl der erlaubten Mounts – die regelt <code>-c</code>. Auf reinen Datenplatten kann man den Wert senken:
 +
*tune2fs -m 1 /dev/sdg1
 +
 +
Denselben Anteil als feste Blockzahl statt in Prozent setzt <code>-r</code>.
 +
 +
==UUID ändern==
 +
Setzt eine neue UUID; <code>random</code> würfelt eine. Nötig etwa, nachdem eine Platte geklont wurde und zwei Dateisysteme dieselbe UUID tragen.
 +
*tune2fs -U random /dev/sdg1
 +
 +
==Kontrolle==
 +
Nach jeder Änderung lässt sich das Ergebnis wieder mit <code>-l</code> nachsehen.
 +
*tune2fs -l /dev/sdg1
 +
 
=ext4 Reparatur=
 
=ext4 Reparatur=
 
=Aufgaben ext4=
 
=Aufgaben ext4=

Version vom 19. August 2026, 17:07 Uhr

ext4 Eigenschaften

Was ist das?

Ext4 ist ein weit verbreitetes Dateisystem für Linux-Betriebssysteme. Es wurde als Nachfolger des älteren Ext3-Dateisystems entwickelt und bietet zahlreiche Verbesserungen und zusätzliche Funktionen. Hier sind die wichtigsten Eigenschaften von Ext4:

Größere Dateisysteme

  • Ext4 verwaltet sehr große Dateisysteme: bis zu 1 Exbibyte (EiB) pro Dateisystem und bis zu 16 Tebibyte (TiB) pro Datei.
  • Die 16 TiB je Datei gelten bei der üblichen Blockgröße von 4 KiB. Bei kleineren Blöcken sinkt der Wert entsprechend.

Verbesserte Leistung

  • Ext4 arbeitet schneller als Ext3, besonders bei großen Dateisystemen und bei vielen Dateioperationen wie dem Anlegen und Löschen.
  • Erreicht wird das vor allem durch Extents (zusammenhängende Blockbereiche statt einzelner Block-für-Block-Verweise), Multiblock-Allokation (mehrere Blöcke werden in einem Schritt reserviert) und Delayed Allocation (die Zuordnung auf der Platte wird bis zum Schreiben aufgeschoben, was Fragmentierung verringert).

Dateisystemjournaling

  • Ext4 führt ein Journal, das nach einem Absturz die Konsistenz sicherstellt und langwierige komplette Prüfungen erspart.
  • Es gibt drei Modi: journal (Metadaten und Daten werden ins Journal geschrieben, am sichersten, aber am langsamsten), ordered (nur Metadaten ins Journal, Daten werden vorher geschrieben – der voreingestellte Kompromiss) und writeback (nur Metadaten, ohne Reihenfolgegarantie – am schnellsten, aber nach einem Absturz können alte Daten in neuen Dateien stehen).

Online-Defragmentierung

  • Fragmentierte Dateien lassen sich im laufenden Betrieb neu ordnen, ohne das Dateisystem auszuhängen. Das Werkzeug dazu ist e4defrag.

Erweiterte Attribute

  • Ext4 speichert erweiterte Attribute (xattr) – zusätzliche Metadaten an Dateien und Verzeichnissen. Darauf setzen unter anderem SELinux-Kontexte, POSIX-ACLs und Capabilities auf.

Verschlüsselung

  • Ext4 kann einzelne Verzeichnisse auf Dateiebene verschlüsseln (fscrypt). Das Feature muss beim Anlegen aktiviert sein (-O encrypt).
  • Das ist etwas anderes als LUKS/dm-crypt: LUKS verschlüsselt das gesamte Blockgerät unter dem Dateisystem, fscrypt einzelne Verzeichnisse im Dateisystem.

Rückwärtskompatibilität

  • Ext4 ist mit Ext3 und Ext2 kompatibel. Ein bestehendes Ext3- oder Ext2-Dateisystem lässt sich zu Ext4 aufrüsten, indem die neuen Features nachträglich eingeschaltet werden.

Zusammenfassend

  • Diese Eigenschaften machen Ext4 zu einem robusten und leistungsfähigen Dateisystem für Linux.
  • Es ist in vielen Distributionen die Voreinstellung und eignet sich wegen seiner Stabilität und Skalierbarkeit für Desktop wie Server.

ext4 erstellen eines Dateisystem

Allgemein

mkfs.ext4 legt ein ext4-Dateisystem auf einer Partition oder einem Gerät an. Der Aufruf ohne Optionen genügt für den Normalfall – Blockgröße, Anzahl der Inodes und die übrigen Kennwerte werden aus der Gerätegröße abgeleitet.

Achtung: mkfs.ext4 fragt nicht nach und überschreibt ein vorhandenes Dateisystem sofort. Das Ziel muss die gewünschte Partition sein (z. B. /dev/sdg1), nicht die ganze Platte, außer man will das Dateisystem wirklich ohne Partitionstabelle direkt aufs Gerät legen.

Ein ext4-Dateisystem anlegen

  • mkfs.ext4 /dev/sdg1
mke2fs 1.47.0 (5-Feb-2023)
Creating filesystem with 2621440 4k blocks and 655360 inodes
Filesystem UUID: 1b40fc1f-21dd-497e-9266-454f206f67b2
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

Aus der Ausgabe lässt sich schon einiges ablesen: die Blockgröße (4k), die Zahl der Blöcke und Inodes, die UUID und die Blöcke, auf denen die Superblock-Kopien liegen – genau die aus dem Artikel zum Dateisystem-Aufbau.

Wichtige Optionen

Option Erklärung
-b BLOCKSIZE Blockgröße in Byte: 1024, 2048 oder 4096
-L LABEL Volume-Label setzen
-U UUID UUID setzen (random für einen Zufallswert)
-N ANZAHL feste Anzahl der Inodes
-i BYTES ein Inode je so viele Byte – je größer der Wert, desto weniger Inodes
-m PROZENT für root reservierter Anteil (Vorgabe 5 %)
-T TYP Verwendungszweck: small, floppy, news u. a. – steuert die Inode-Dichte
-E OPTION erweiterte Optionen, z. B. -E lazy_itable_init=0
-O FEATURE Feature ein- oder ausschalten, z. B. -O encrypt oder -O ^has_journal
-n nichts anlegen, nur anzeigen, was geschähe (u. a. die Lage der Superblock-Kopien)

-N und -i steuern beide die Zahl der Inodes, aber auf verschiedene Weise: -N gibt die Zahl direkt vor, -i gibt an, für wie viele Byte Nutzdaten ein Inode angelegt wird. Beides zusammen anzugeben ergibt keinen Sinn.

Beispiele

Mit festgelegter Blockgröße

Erlaubt sind 1024, 2048 oder 4096 Byte pro Block.

  • mkfs.ext4 -b 2048 /dev/sdg1

Mit fester Anzahl der Inodes

  • mkfs.ext4 -N 3072 /dev/sdg1

Mit Byte pro Inode

Je größer die Zahl, desto weniger Inodes werden angelegt.

  • mkfs.ext4 -i 1024 /dev/sdg1

Mit Volume-Label

  • mkfs.ext4 -L daten-platte /dev/sdg1

Mit vorgegebener UUID

  • mkfs.ext4 -U 3c52166d-7803-42f4-952a-88bf43e11268 /dev/sdg1

Mit geändertem Reservat für root

Standard sind 5 %. Auf reinen Datenplatten ohne Systemdateien kann man den Wert senken.

  • mkfs.ext4 -m 1 /dev/sdg1

Nur anzeigen, nichts schreiben

Zeigt die geplanten Kennwerte und die Lage der Superblock-Kopien, ohne die Platte zu verändern.

  • mkfs.ext4 -n /dev/sdg1

Kontrolle nach dem Anlegen

Die Kennwerte des fertigen Dateisystems zeigt dumpe2fs im Kopfbereich.

  • dumpe2fs -h /dev/sdg1

ext4 tuning eines Dateisystem

tune2fs ändert die Parameter eines bestehenden ext2/ext3/ext4-Dateisystems, ohne es neu anzulegen. Angewendet wird es auf die Partition, nicht auf ein gemountetes Verzeichnis. Die meisten Änderungen sind auch im eingehängten Zustand möglich; Ausnahmen nennt tune2fs selbst.

Anzeigen von Informationen

Zeigt den Superblock-Inhalt: UUID, Label, Block- und Inode-Zahl, Features, Zähler und Prüfintervalle.

  • tune2fs -l /dev/sdg1

Maximale Mount-Zahl bis zur Zwangsprüfung

Nach so vielen Mount-Vorgängen erzwingt das System beim nächsten Start eine Prüfung mit fsck. Hier: alle 30 Mounts.

  • tune2fs -c 30 /dev/sdg1

Auf den meisten aktuellen Distributionen ist diese Zwangsprüfung abgeschaltet (Wert 0), weil ein fsck-Lauf beim Booten unerwünscht ist. Abschalten:

  • tune2fs -c 0 /dev/sdg1

Zeitintervall bis zur Zwangsprüfung

Prüfung nach einer festen Zeitspanne statt nach Mount-Zahl. Hier: alle zwei Monate (d Tage, w Wochen, m Monate).

  • tune2fs -i 2m /dev/sdg1

Auch dieses Intervall ist meist auf 0 gesetzt. Abschalten:

  • tune2fs -i 0 /dev/sdg1

Größe des Journals festlegen

Legt die Größe des Journals fest, hier 32 MiB. Das ist die Größe des Journals selbst, kein Cache.

  • tune2fs -J size=32m /dev/sdg1

Journaling ein- oder ausschalten

Journaling einschalten (macht aus ext2 praktisch ext3):

  • tune2fs -O has_journal /dev/sdg1

Journaling ausschalten – das vorangestellte ^ entfernt ein Feature:

  • tune2fs -O ^has_journal /dev/sdg1

Dateisystem-Label ändern

Setzt das Label, über das die Partition auch in /etc/fstab als LABEL= angesprochen werden kann.

  • tune2fs -L daten-platte /dev/sdg1

Für root reservierten Anteil ändern

-m setzt den Prozentsatz der Blöcke, die dem Superuser vorbehalten bleiben (Vorgabe 5 %). Das ist nicht die Zahl der erlaubten Mounts – die regelt -c. Auf reinen Datenplatten kann man den Wert senken:

  • tune2fs -m 1 /dev/sdg1

Denselben Anteil als feste Blockzahl statt in Prozent setzt -r.

UUID ändern

Setzt eine neue UUID; random würfelt eine. Nötig etwa, nachdem eine Platte geklont wurde und zwei Dateisysteme dieselbe UUID tragen.

  • tune2fs -U random /dev/sdg1

Kontrolle

Nach jeder Änderung lässt sich das Ergebnis wieder mit -l nachsehen.

  • tune2fs -l /dev/sdg1

ext4 Reparatur

Aufgaben ext4