Ext4: Unterschied zwischen den Versionen
| Zeile 33: | Zeile 33: | ||
=ext4 erstellen eines Dateisystem= | =ext4 erstellen eines Dateisystem= | ||
| + | ==Allgemein== | ||
| + | <code>mkfs.ext4</code> 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:''' <code>mkfs.ext4</code> fragt nicht nach und überschreibt ein vorhandenes Dateisystem sofort. Das Ziel muss die gewünschte Partition sein (z. B. <code>/dev/sdg1</code>), 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== | ||
| + | |||
| + | {| class="wikitable" | ||
| + | ! Option !! Erklärung | ||
| + | |- | ||
| + | | <code>-b BLOCKSIZE</code> || Blockgröße in Byte: 1024, 2048 oder 4096 | ||
| + | |- | ||
| + | | <code>-L LABEL</code> || Volume-Label setzen | ||
| + | |- | ||
| + | | <code>-U UUID</code> || UUID setzen (<code>random</code> für einen Zufallswert) | ||
| + | |- | ||
| + | | <code>-N ANZAHL</code> || feste Anzahl der Inodes | ||
| + | |- | ||
| + | | <code>-i BYTES</code> || ein Inode je so viele Byte – je größer der Wert, desto weniger Inodes | ||
| + | |- | ||
| + | | <code>-m PROZENT</code> || für root reservierter Anteil (Vorgabe 5 %) | ||
| + | |- | ||
| + | | <code>-T TYP</code> || Verwendungszweck: <code>small</code>, <code>floppy</code>, <code>news</code> u. a. – steuert die Inode-Dichte | ||
| + | |- | ||
| + | | <code>-E OPTION</code> || erweiterte Optionen, z. B. <code>-E lazy_itable_init=0</code> | ||
| + | |- | ||
| + | | <code>-O FEATURE</code> || Feature ein- oder ausschalten, z. B. <code>-O encrypt</code> oder <code>-O ^has_journal</code> | ||
| + | |- | ||
| + | | <code>-n</code> || nichts anlegen, nur anzeigen, was geschähe (u. a. die Lage der Superblock-Kopien) | ||
| + | |} | ||
| + | |||
| + | <code>-N</code> und <code>-i</code> steuern beide die Zahl der Inodes, aber auf verschiedene Weise: <code>-N</code> gibt die Zahl direkt vor, <code>-i</code> 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 <code>dumpe2fs</code> im Kopfbereich. | ||
| + | *dumpe2fs -h /dev/sdg1 | ||
| + | |||
=ext4 tuning eines Dateisystem= | =ext4 tuning eines Dateisystem= | ||
=ext4 Reparatur= | =ext4 Reparatur= | ||
Version vom 19. August 2026, 17:05 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