Heute bin ich bei der Partitionierung von Fedora 45 auf folgende Frage gestoßen. Warum nutzt man bei der Partitionierung noch so ein Relikt wie FAT32 / VFAT. Sind das nicht Überbleibsel der Windows-Welt und warum findet man das unter Linux und wieso gibt es nichts besseres bzw. warum funktioniert Linux ohne FAT nicht?
Habt ihr euch das auch schon einmal gefragt? Nun, die Sache verhält sich folgendermaßen:
Unter Linux verwendet man bei der Partitionierung FAT32 beziehungsweise VFAT heutzutage hauptsächlich aus Kompatibilitätsgründen – nicht, weil es technisch das beste Dateisystem wäre.
Der wichtigste Anwendungsfall ist die EFI-Systempartition (ESP), die für den UEFI-Bootvorgang benötigt wird.
1. Warum FAT32 für die EFI-Partition?
UEFI-Firmware kann FAT-Dateisysteme standardisiert lesen. Sie muss also bereits vor dem Start eines Betriebssystems auf die Bootloader-Dateien zugreifen können.
Typischerweise sieht das so aus:
Verzeichnis/Datei Funktion
EFI/BOOT/BOOTX64.EFI Standard-Bootloader
EFI/ubuntu/shimx64.efi Ubuntu Secure-Boot-Komponente
EFI/ubuntu/grubx64.efi GRUB-Bootloader
EFI/fedora/ Fedora-Bootdateien
Ein Linux-System kann seine eigentlichen Partitionen problemlos mit ext4, Btrfs oder XFS betreiben. Die EFI-Partition bleibt trotzdem FAT32.
Der Grund: Die UEFI-Firmware kennt normalerweise weder ext4 noch Btrfs oder XFS.
2. FAT32 vs. VFAT – was ist der Unterschied?
Die Begriffe werden unter Linux häufig etwas durcheinander verwendet.
- FAT32: Das eigentliche Dateisystem beziehungsweise die FAT-Variante.
- VFAT: Eine Erweiterung des FAT-Dateisystems, die lange Dateinamen ermöglicht.
- vfat: Der Linux-Kernel-Dateisystemtreiber, der FAT12, FAT16 und FAT32 unterstützt.
Wenn du beispielsweise Folgendes ausführst:
mkfs.fat -F 32 /dev/sda1
erstellst du eine FAT32-Partition.
Beim Einbinden:
mount -t vfat /dev/sda1 /boot/efi
verwendest du den Linux-Treiber vfat.
3. Warum nicht ext4 oder Btrfs für EFI?
Eigenschaft FAT32 ext4 Btrfs
UEFI-Unterstützung Standard Nein Nein
Linux-Unterstützung Ja Ja Ja
Windows-Kompatibilität Ja Nein Nein
Journaling Nein Ja Ja
Dateiberechtigungen Nein Ja Ja
Snapshots Nein Nein Ja
Maximale Dateigröße 4 GB 16 TiB (typisch) 16 EiB (theoretisch)
FAT32 ist also technisch ziemlich eingeschränkt. Für eine kleine Bootpartition mit einigen EFI-Dateien ist es aber völlig ausreichend.
4. Warum nicht einfach ein moderneres Dateisystem?
Das Problem ist die Boot-Reihenfolge:
1. Der Rechner startet.
2. Die UEFI-Firmware übernimmt.
3. UEFI sucht auf der EFI-Systempartition nach einem EFI-Programm.
4. Der Bootloader wird geladen.
5. Erst danach startet Linux und kann seine eigenen Dateisystemtreiber verwenden.
Das bedeutet: Das Dateisystem der EFI-Partition muss von der Firmware verstanden werden, nicht nur von Linux.
5. Wann verwendet man FAT32 unter Linux noch?
Neben der EFI-Systempartition gibt es weitere Anwendungsfälle:
- USB-Sticks, die mit Windows, Linux und macOS kompatibel sein sollen.
- Austauschpartitionen zwischen verschiedenen Betriebssystemen.
- Firmware-Updates für Mainboards und andere Geräte.
- Bootmedien für Installationsprogramme.
Fazit: FAT32 ist unter Linux kein Relikt, das man aus Gewohnheit verwendet. Es erfüllt eine wichtige Schnittstellenfunktion zwischen Hardware-Firmware und Betriebssystem.
Gerade bei der EFI-Systempartition ist die Einfachheit und universelle Unterstützung wichtiger als moderne Dateisystemfunktionen.
Alles klar?