Loading AI tools
Dateisystem mit Journaling für unixoide Betriebssysteme Aus Wikipedia, der freien Enzyklopädie
Das ext4 (englisch fourth extended filesystem) ist das vierte extended filesystem, das für den Linux-Kernel entwickelt wurde. Es ist der Nachfolger von ext3 und wie dieses ein Journaling-Dateisystem. Anders als bei ext3 ist das Journaling jedoch auch abschaltbar.
ext4 | |
---|---|
Hersteller | Mingming Cao, Dave Kleikamp, Alex Tomas, Theodore Ts’o, andere |
Vollständige Bezeichnung | Fourth extended filesystem |
Erstveröffentlichung | 14. Oktober 2008 (Testversion seit Linux 2.6.19, final seit Linux 2.6.28) |
Partitionskennung | 0x83 (MBR) EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT) |
Technische Umsetzung | |
Verzeichnisse | Tabelle, H-Baum |
Dateien | bitmap (free space), Tabelle (metadata) |
Defektblockliste | Table |
Maximalwerte | |
Größe einer Datei | 16 GiB bis 256 TiB (Abhängig von der Blockgröße 1 bis 64 KiB)[1] |
Anzahl Unterverzeichnisse pro Verzeichnis | 64000[2] |
Länge des Dateinamens | 255 Bytes |
Größe des Dateisystems | 4 TiB bis 256 TiB (32 bit Dateisystem, für 1 bis 64 kiB Blockgröße)[1] bzw. 16 ZiB bis 1 YiB (64 bit Dateisystem, für 1 bis 64 kiB Blockgröße)[1], 16 TiB ab e2fsprogs Version 1.42 |
Erlaubte Zeichen im Dateinamen | Alle Bytes außer NULL und '/' |
Eigenschaften | |
Datumsangaben einer Datei | modification (mtime), attribute modification (ctime), access (atime), create (crtime) |
Datumsbereich | 14.12.1901 bis 25.04.2514 |
Forks | Nein |
Dateiattribute | extent, data=journal, data=ordered, data=writeback, commit=nrsec, orlov, oldalloc, user_xattr, nouser_xattr, acl, noacl, bsddf, minixdf, bh, nobh |
Dateirechte-Verwaltung | POSIX |
Transparente Komprimierung | nein |
Transparente Verschlüsselung | ja |
Unterstützende Betriebssysteme | Linux, auch (teils mit Drittanbieter-Programmen) z. B. FreeBSD,[3] macOS,[4] Windows[5][6][7] |
ext4 wurde am 10. Oktober 2006 von Andrew Morton vorgestellt. Ab der Version 2.6.19 war eine vorläufige Testversion offizieller Bestandteil des Linux-Kernels.[8] Mit dem Erscheinen von Linux 2.6.28 am 24. Dezember 2008 verließ ext4 das Hauptentwicklungsstadium[9] und gilt als stabil. In Linux 4.3 wurde der Code des nativen Treibers für ext3 endgültig entfernt. Der ext4-Treiber unterstützt zukünftig weiterhin ext3.[10][11]
ext4 benutzt 48 Bit große Blocknummern (ext3 hatte 32 Bit) und unterstützt so Partitionen oder Volumes, die bis zu 1 YiB[1] groß sind (Volumes größer als 16 TiB erst ab e2fsprogs Version 1.42 vom 29. November 2011), im Gegensatz zu ext3, das nur 32 TiB zulässt (abhängig von der Größe einer Speicherseite in der jeweiligen Maschinenarchitektur, bei IA-32 zum Beispiel sind nur maximal 232 · 4 KiB = 16 TiB möglich). Auch kann die Adressierung von Dateien über Extents erfolgen, wobei Speichereinheiten zu einem zusammenhängenden Block zusammengefasst werden. Dies führt zu einer Reduzierung des Zusatzaufwands (RAM, E/A-Zugriffe und Transaktionen) für große Dateien, weil nur die Nummer des ersten Blocks und deren Anzahl gespeichert werden muss (und nicht jeder Block einzeln) und kann die Leistung im Betrieb steigern.
Seit Veröffentlichung im Kernel 2.6.19 sind folgende Verbesserungen implementiert worden[12]:
dir_nlink
, Dateien: large_dir
)huge_file
)discard
beim Einhängen)mmp
)bigalloc
)quota
)inline_data
)sparse_super2
)metadata_csum
)encrypt
)metadata_csum_seed
)project
)ea_inode
)large_dir
)casefold
)[13]verity
)stable_inodes
)Jede dieser Verbesserungen in einer neuen ext4-Version im Linux-Kernel bringt es mit sich, dass damit formatierte Volumes, z. B. auf (Wechsel-)datenträgern, auf einem anderen System mit älterer Version des Kernels nicht gelesen werden können[14], sofern man auf dem Datenträger die neu hinzugekommenen Funktionen nicht zuvor abschaltet, wofür Hilfsprogramme zur Verfügung stehen.[15] Die meisten Distributionen verwenden beim Formatieren Voreinstellungen, die bestimmte neuere Funktionen automatisch aktivieren.[16]
Weitere Verbesserungen gegenüber ext3/ext2:
tune2fs
Option -O extent
konvertiert wurde.Bei bestehenden ext3-Partitionen können einige der ext4-Features ohne Neuformatierung aktiviert werden.[28][29] ext2- und ext3-Partitionen können eingehängt werden, als wären sie ext4-Partitionen. Daraus ergeben sich durch Optimierung im ext4-Treiber bereits kleine Leistungsgewinne.
Seit Kernel 4.1 unterstützt ext4 Verschlüsselung. Diese wurde zunächst von Google entwickelt[30] und in ext4 direkt eingebaut; seit Kernel 4.6 ist die Verschlüsselung unter dem Namen fscrypt eine eigene Bibliothek im Linux-Kernel[31], welche über Hooks in Dateisystemen genutzt werden kann. Neben ext4 haben derzeit F2FS und UBIFS Unterstützung für fscrypt implementiert.[31] Das Keyhandling wird über den Kernelkeyring gemanagt.
Mit e4crypt existiert eine Referenzimplementation für ein Userspace-Tool zum Anlegen von Schlüsseln und Aktivieren der Verschlüsselung für Verzeichnisse. Eine alternative Implementation sind die Tools fscryptctl und fscrypt.[32][33]
Voraussetzungen:
Eigenschaften:
Nachteile:
Zeitverzögerte Allokation von Dateiblöcken und Inodes erhöht das Risiko von Datenverlust bei Abstürzen oder Stromausfall. In Kernel Version 2.6.30 wurde dieses Problem gegenüber früheren Versionen entschärft.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.