ubuntuusers.de

Dateisystem

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

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

Dateisysteme sind die Schnittstellen zwischen dem Betriebssystem und den Partitionen auf Datenträgern. Sie organisieren die geordnete Ablage von Daten. Als Benutzer bekommt man von der Arbeit eines Dateisystems nicht viel mit. Man sieht nur, dass Dateien oder Verzeichnisse vorhanden sind, nicht aber wo und wie diese Daten auf dem Datenträger organisiert, gespeichert werden. Diese Arbeit übernimmt das Dateisystem. Es richtet eine Art Inhaltstabelle ein, in der alle Dateien (auch Verzeichnisse) und ihre Speicheradressen verwaltet werden. Neben einer solchen grundlegenden Datenorganisation stellen die verschiedenen Dateisysteme noch unterschiedliche zusätzliche Möglichkeiten zur Verfügung. Dieser Artikel verdeutlicht einige der Unterschiede zwischen den verschiedenen Dateisystemen.

Das Dateisystem ist nur eine Ebene im Bereich der Datenhaltung. Daneben gibt es zum Beispiel noch „Geräte“ und „Partitionen“. Für einen Überblick wird der Artikel Datenverwaltung empfohlen.

Dieser Artikel beschreibt nicht die Verzeichnisstruktur von Linux!

Was macht ein Dateisystem?

Neben der Datenorganisation auf dem Datenträger kann ein Dateisystem zusätzliche Möglichkeiten zur Verfügung stellen. Beispiele sind:

  • Verzeichnisse und Unterverzeichnisse anlegen

  • Datumsinformationen speichern (Erstellungsdatum, letzte Änderung, Zugriff)

  • Lange Dateinamen verwenden

  • Groß- und Kleinschreibung für Dateinamen berücksichtigen

  • Sonderzeichen für Dateinamen ermöglichen (z.B.: Leerzeichen)

  • Rechteverwaltung zur Zugriffssteuerung auf Dateien/Verzeichnisse

  • Journaling-Funktionen

Dateisystem und Formatierung

Ein Dateisystem wird einer Partition durch Formatierung zugewiesen, „man formatiert mit einem Dateisystem“. Hierbei werden auf einer Partition bestimmte Stellen für die Verwaltung reserviert und mit vordefinierten Werten überschrieben (was zu Datenverlust führt). Außerdem wird eine Inhaltstabelle angelegt und die ersten Werte (für die reservierten Stellen) eingetragen.

Hinweis:

Besonderheit /swap:
Obwohl die Swap-Partition kein Dateisystem im eigentlichen Sinne enthält, ist auch hier ein Formatieren notwendig. Wird bei der Installation von Ubuntu eine Swap-Partition erstellt, so wird die Formatierung automatisch durchgeführt. Siehe auch: Swap

Die Formatierung kann entweder mit grafischen Programmen wie GParted durchgeführt werden oder man benutzt die Terminalprogramme mke2fs bzw. mkfs (Für Beschreibungen der Terminalbefehle siehe die entsprechenden manpages).

Achtung!

Da eine Formatierung unweigerlich einen Datenverlust mit sich bringt, sollte man die Daten vorher sichern!

Experten-Info:

Durch die Formatierung mit einem Dateisystem sind eventuell vorhandene alte Daten nicht mehr direkt lesbar, weil die alte Inhaltstabelle überschrieben wird. Die Daten selber sind in der Regel aber noch vorhanden. Will man seine Daten wirklich löschen (unbrauchbar machen), muss die gesamte Partition überschrieben werden. Siehe Daten sicher löschen. Wer versehentlich eine Partition formatiert hat, kann versuchen, diese mit Testdisk 🇩🇪 wiederherzustellen. Siehe auch Datenrettung (Abschnitt „Partitionen-retten“)

Warum braucht Linux ein spezielles Dateisystem?

Linux nutzte bis ca. 1992 das Dateisystem Minix, was aber aus unterschiedlichen Gründen ( max. Partitionsgröße 64 MB, Dateinamen durften nur 14 Zeichen lang sein) nicht mehr den Ansprüchen genügte. Als Alternative bot sich das ext-Dateisystem an, welches (fast) allen Anforderungen gerecht wurde.

Moderne Linux-Dateisysteme müssen unter anderem folgende Eigenschaften besitzen:

  • Rechteverwaltung: Linux wurde von vornherein als Mehrbenutzer- Serverbetriebssystem konzipiert. Damit nicht ein Nutzer auf die Daten eines anderen Benutzers zugreifen kann, ist eine Rechteverwaltung nötig, die solche Zugriffe unterbindet. Ebenso verhindert die Rechteverwaltung, dass ein Nutzer direkten Zugriff auf das Betriebssystem hat. Somit kann ein Nutzer nicht ungewollt die Betriebssystemeinstellungen „verbiegen“.

  • symbolische Verknüpfungen: Dateisysteme, die diese Fähigkeiten nicht bieten, scheiden von vornherein aus.

  • Linux ist ein offenes, freies Betriebssystem. Die verwendeten Komponenten sollen auch diesen Maßstäben entsprechen.

Hinweis:

Dateisysteme, die diese Eigenschaften nicht besitzen (wie z.B.: FAT oder NTFS), sind für eine Installation von Ubuntu/Linux nicht geeignet!

Unterschiede

Grundlegende Merkmale

Dateisystem technischer Stand Von Betriebssystem unterstützt Rechteverwaltung Journaling
Btrfs Standard in Suse Linux, optional bei allen Distributionen seit 2014 Linux,ReactOS Nur Metadaten
ext... ...2 Ehemaliges Standarddateisystem, sehr ausgereift, aber aufgrund fehlender Journal-Funktion sehr langsam bei den Dateisystem-Checks Linux; BSD; Windows mit ext2fd 🇬🇧 oder ExtFS für Windows 🇩🇪; MacOS X mit ExtFS-Treiber 🇩🇪
...3 Ehemaliges Standarddateisystem Linux; BSD; Windows mit ext2fsd 🇬🇧 oder ExtFS für Windows 🇩🇪; MacOS X mit ExtFS-Treiber 🇩🇪
...4 Aktuelles Standarddateisystem für Ubuntu Linux; Windows mit ext2fd 🇬🇧 oder ExtFS für Windows 🇩🇪; MacOS X mit ExtFS-Treiber 🇩🇪
JFS Kompromiss aus Schnelligkeit und Sicherheit Linux; Unix; OS/2 Nur Metadaten
ReiserFS war lange Standarddateisystem vieler Distributionen Linux; BSD; Windows mit kommerz. Zusatztreiber
Reiser4 experimentell, schon sehr lange in der Entwicklung Linux (nur mit Kernelpatch)
XFS ausgereift und stabil, im Desktop-Bereich aber nicht sehr verbreitet Linux; Unix; BSD
FAT... ...12 Dateisysteme von Microsoft, als Installationsdateisystem für Linux nicht geeignet Windows; Linux; BSD; Mac OS
...16
...32
exFAT proprietär, speziell für Flash-Speicher, als Installationsdateisystem für Linux nicht geeignet Windows; Linux, FreeBSD via FUSE-Treiber; Mac OS
NTFS das Standarddateisystem von Windows ab Windows XP, als Installationsdateisystem für Linux nicht empfohlen Windows; Linux; BSD; Mac OS in Linux bedingt verwendbar* Nur Metadaten
ZFS Standarddateisystem unter Solaris Solaris; Linux; BSD

* NTFS besitzt zwar ein Rechte-System, dies funktioniert aber standardmäßig nur unter Windows. Optional bietet der Dateisystem-Treiber NTFS-3G jedoch die Möglichkeit, Linux-Dateirechte und sogar auch POSIX-ACL in NTFS-Partitionen zu verwalten. Eine Synchronisation der Linux-Dateirechte mit dem Rechte-System für Windows ist (mit gewissen Einschränkungen) über ntfs-user-mapping möglich. Der seit Ubuntu 22.04 optional verwendbare Kernel-Treiber NTFS3 erlaubt ebenfalls eine Verwaltung von Linux-Dateirechten. Diese ist aber mit der von NTFS-3G nicht kompatibel.

Weitere Merkmale

Dateisystem max. Dateigröße Hinweis max. Partitionsgröße Hinweis Nicht erlaubte Zeichen Max. Dateinamenlänge Hinweise erweiterte Attribute ACL
Btrfs 16 EiB 16 EiB / Bis zu 255 Zeichen (255 Bytes)
ext... ...2 16 GiB bis 2 TiB, je nach Blockgröße. Siehe:Ext2 2 TiB bis 32 TiB, je nach Blockgröße. Siehe Ext2 / Bis zu 255 Zeichen (255 Bytes)
...3 16 GiB bis 2 TiB, je nach Blockgröße. Siehe:Ext2 2 TiB bis 32 TiB, je nach Blockgröße. Siehe Ext2 / Bis zu 255 Zeichen (255 Bytes)
...4 16 GiB bis 16 TiB 2 TiB bis 1 EiB / Bis zu 255 Zeichen (255 Bytes)
JFS 4 PiB 32 PiB / Bis zu 255 Zeichen (255 Bytes)
ReiserFS 8 TiB (v3.6), 4 GiB (v3.5) 16 TiB / Bis zu 255 Zeichen (4032 Bytes)
Reiser4 8 TiB Unbekannt / Bis zu 255 Zeichen (3976 Bytes)
XFS 8 EiB 8 EiB / Bis zu 255 Zeichen (255 Bytes)
FAT... ...12 32 MiB 1 MiB bis 32 MiB \ / : * ? " < > | Bis zu 255 Zeichen (512 Bytes)
...16 4 GiB - 1 TiByte 16 MiB bis 4 GiB \ / : * ? " < > | Bis zu 255 Zeichen (512 Bytes)
...32 4 GiB 512 MiB bis 8 TiB \ / : * ? " < > | Bis zu 255 Zeichen (512 Bytes)
exFAT ca. 128 PiB ca. 128 PiB \ / : * ? " < > | Bis zu 255 Zeichen (255 Bytes)
NTFS 16 EiB 16 EiB /
Windows verbietet zusätzlich auch noch \ : * ? " < > |
Bis zu 255 Zeichen (255 Bytes)
ZFS 16 EiB 16 EiB / Bis zu 255 Zeichen (255 Bytes)

Sonstige Informationen

Dateisystem Veröffentlicht Entwickler Entwickelt für Betriebssystem Links
Btrfs 2007 Oracle Linux btrfs
ext2 1993 Rémy Card u.a. Linux ext2
ext3 2001 Stephen Tweedie u.a. Linux ext3
ext4 2008 verschiedene Linux ext4
JFS 1990 IBM AIX JFS
ReiserFS 2001 Namesys Linux ReiserFS
Reiser4 2004 Namesys Linux ReiserFS
XFS 1994 SGI Unix XFS
FAT 1980 Microsoft MS-DOS FAT
exFAT 2006 Microsoft Windows exFAT
NTFS 1993 Microsoft Windows NTFS
ZFS 2006 Sun Solaris ZFS
SquashFS 2002 Phillip Lougher Linux SquashFS

Siehe dazu auch Comparison of file systems.

Hinweise

Wieviele Bytes benötigt ein Zeichen?

Je nach Kodierung werden Zeichen durch unterschiedlich viele Bytes repräsentiert. Beispielsweise werden bei der Kodierung UTF-8 einige Zeichen mit einem Byte (z.B: a, b, c, A, B, C), mit zwei Bytes (z.B. ü, ö, ä, ß) oder auch drei oder vier Bytes (z.B.: asiatische Schriftzeichen) kodiert. Bei Angabe von „255 Bytes“ kann ein Dateiname aus 255 1-Byte-kodierten Zeichen bestehen. Werden auch Mehr-Byte-kodierte Zeichen für den Dateinamen verwendet, verkürzt sich die maximale Länge entsprechend.

FAT-Dateisysteme verwenden als Kodierung UTF-16. Diese Kodierung benötigt auch für normale Zeichen wie „a, b, A, B“ mindestens zwei Bytes.

Hinweis:

Unter Linux/Ubuntu ist darauf zu achten, FAT-Dateisysteme mit der mount-Option utf8 einzuhängen. Siehe: Windows-Partitionen einbinden und Mountoptionen für Windowsdateisysteme

Dateinamenlänge

Die Länge von Dateinamen unter Linux-Systemen wird in erster Linie vom VFS (Virtual File System) begrenzt. Das VFS ist eine weitere Schicht zwischen Betriebssystem und Dateisystem. Sie dient dazu, den Zugriff auf die verschiedenen Dateisysteme zu vereinheitlichen, und ermöglicht erst das Einhängen (mounten) derselben. Das VFS kann keine Dateinamen länger als 255 Bytes verwalten, auch wenn das Dateisystem mehr ermöglichen würde (z.B.: ReiserFS).

FAT-Dateisysteme können längere Dateinamen als das 8.3-Format nur mit Hilfe von VFAT verwirklichen (VFAT ist Standard ab Windows95). Die maximal mögliche Dateinamenlänge hängt zudem mit der Pfadlänge zusammen (siehe folgenden Abschnitt).

Pfadlänge

Allgemein ist die Länge eines Dateipfades, also Verzeichnis(se) plus Dateiname (z.B.: /home/USER/Musik/Rock/guteMusik.mp3) wie folgt definiert:

  • Unter Linux ist die Pfadlänge auf 4096 Bytes beschränkt

  • Unter Windows ist die Pfadlänge auf 255 Zeichen beschränkt

Diese Werte können jedoch unter bestimmten Bedingungen sowohl größer als auch kleiner ausfallen. (Siehe Diskussionsbeiträge zu Linux, Windows Dateinamenlänge und Windows Pfadlänge)

Achtung!

Unter Linux können ohne weiteres Dateipfade auf FAT-formatierten Datenträgern erstellt werden, die länger als 255 Zeichen sind. Unter Windows ist ein Zugriff mit dem Explorer auf so einen Dateipfad nicht möglich, da hier die Beschränkung auf 255 Zeichen besteht!

Datei-/Partitionsgröße

Die maximalen Datei-/Partitionsgrößen hängen direkt von der maximalen Größe der vom Dateisystem genutzten Zuordnungseinheit ab. Die in der Tabelle genannten Werte orientieren sich dabei hinsichtlich der Linux-Dateisysteme an der kleinsten bzw. größten Blockgröße: Die kleinere Zahl gibt die Größe bei 1 KiB-Blöcken, die größere Zahl bei 8 KiB-Blockgröße an.

Hinweis:

Eine Blockgröße von 8 KiB ist nur auf bestimmten Architekturen (z.B. Alpha) möglich!

Wer mehr über den Zusammenhang von Blockgröße und Dateigröße erfahren möchte, sollte den Artikel Inode lesen.

Hinweis:

Bei der Erstellung eines Dateisystems ohne expliziter Angabe der Blockgröße, wird je nach Partitionsgröße automatisch eine passende Blockgröße gewählt. In der Regel ist die automatisch eingestellte Größe völlig ausreichend!

Dateisysteme für optische Datenträger

ISO 9660 und UDF werden auf CD-ROMs, DVDs und BDs verwendet. ISO 9660 kennt keine Rechteverwaltung. UDF bietet ab Version 1.5 Funktionen, die besonders nützlich für DVD-RAMs sind.

Weitere Dateisysteme

Linux bzw. der Linux-Kernel unterstützt noch eine Vielzahl weiterer Dateisysteme, z.B. HFS/HFS+, Read-only Dateisysteme, komprimierte Dateisysteme etc. Da diese aber nur bei speziellen Anwendungsfällen (z.B. bei manchen Linux Live-CDs) zum Einsatz kommen, wird darauf hier nicht weiter eingegangen. Mit exFAT gibt es ein weiteres für Flash-Speicher optimiertes Dateisystem. Seit Ubuntu 20.04 ist für dieses ein FUSE-Treiber in den Paketquellen verfügbar, und seit Ubuntu 22.04 wird es mit einem Kernel-Treiber nativ unterstützt.

Diese Revision wurde am 14. Februar 2024 11:30 von noisefloor erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: System, Einsteiger, Dateisystem