[[Vorlage(Getestet,  bionic, focal, jammy, lunar)]]

{{{#!vorlage Wissen
[:Pakete installieren: Installation von Programmen]
[:Terminal: Ein Terminal öffnen]
[:sudo: Root-Rechte erlangen]
}}}
[[Inhaltsverzeichnis(1)]]

[wikipedia:File_Allocation_Table#exFAT:exFAT] ('''Ex'''tended '''F'''ile '''A'''llocation '''T'''able), ist ein proprietäres [:Dateisystem:], optimiert für den Einsatz auf [wikipedia:Flash-Speicher:Flash-Speichern]. Der Hauptvorteil gegenüber dem älteren [wikipedia:File_Allocation_Table:FAT/FAT32]-Dateisystem ist die Unterstützung von Dateien mit mehr als 4 GiB Größe.

Da Microsoft gewisse Vorbehalte (Lizenzübereinkunft, Patente) bezüglich der freien Verwendung hat, bieten die offiziellen Paketquellen exFAT-Unterstützung nur in der Sektion ''universe'' an. Daher befindet sich exFAT vor [:20.04:] nicht im Linux-Kernel, sondern es läuft via FUSE. Die weitere Konfiguration von FUSE-spezifischen Einstellungen (z.B. die Option `user_allow_other`) ist im Wiki-Artikel [:FUSE:] ausführlich beschrieben.

Speicherkarten (Memory-Stick, SD) stoßen bei 32 GiB mit FAT/FAT32 an ihre jeweiligen Grenzen. Daher sehen die Spezifikationen z.B. für die zukünftigen Memory-Stick-XC- und SD-XC-Flashspeicher-Kartentypen die Verwendung des exFAT-Dateisystems vor. Möchte man also eine solche Speicherkarte unter Linux auslesen, muss exFAT installiert werden. Andernfalls wird auf dem Datenträger kein Dateisystem erkannt.

exFAT ist zwar moderner als das FAT32-Dateisystem, soll aber kein Nachfolger für FAT/FAT32-Dateisysteme werden. Es ist nur für Flash-Speicher optimiert. Es ist simpler als [wikipedia:NTFS:] und langsamer, besonders auf herkömmlichen Magnet-Festplatten.

= OS-Kompatibilität =
 * Windows Vista: ab Service Pack 1
 * Windows 7 und neuer: nativ
 * Mac OS: benötigt Mac OS X Version 10.6.4 und höher
 * Ubuntu: seit [:12.04:Ubuntu 12.04] in den offiziellen Paketquellen, s.u., seit [:20.04:] Kernel-Unterstützung, keine Treiberinstallation mehr notwendig

= Vorteile des exFAT Dateisystems =
 * exFAT erlaubt Dateien mit mehr als 4 GiB Dateigröße, FAT/FAT32 dagegen nicht
 * exFAT verwendet Dateinamen in [wikipedia:Unicode:] und bis zu 255 Zeichen. Kurze 8.3-Namen gibt es nicht mehr.
 * Die maximale Cluster-Größe beträgt 32 MiB, daher auch für sehr große Datenträger geeignet
 * exFAT verwendet nur eine FAT-Tabelle. Das spart Platz und Verwaltungsaufwand, reduziert aber die Datensicherheit.

Obwohl als Dateisystem für "normale" Festplatten im täglichen Gebrauch nicht geeignet, hat exFAT in bestimmten Anwendungsfällen dennoch möglicherweise Vorteile:

 * Es sind im Gegensatz zu FAT/FAT32 Dateien mit mehr als 4 GiB möglich
 * Im Gegensatz zu NTFS/ext4 braucht man keine Benutzerrechte zu verwalten
 * Es bietet gute Transferraten beim rein linearen Beschreiben

= Installation =
Die exFAT-Treiber können aus den offiziellen Paketquellen installiert [1] 
werden:

Bis Ubuntu 21.10:

{{{#!vorlage Paketinstallation
exfat-fuse, universe
exfat-utils, universe
}}}

Ab Ubuntu 22.04:

{{{#!vorlage Paketinstallation
exfat-fuse, universe
exfatprogs, universe
}}}

= Verwendung =
Nun kann exFAT wie üblich genutzt werden:
 * `mount -t exfat ...` (siehe [:mount:])
 * `mkfs -t exfat ...` (siehe [:Formatieren:])
 * `fsck ...` (siehe [:Dateisystemcheck:])

== Beispiele ==
Die ersten beiden Beispiele sind für Nicht-Computer ggf. ungeeignet, da diese meist eine MBR-Partitionierung und nur eine bestimmte Clustergröße verlangen. Sinnvoll ist das aber für eine externe Festplatte, wo man wenige, sehr große Dateien unterbringen möchte.

 1. Ein Flash-Speicher unter '''/dev/sdd1''' soll als exFAT formatiert werden [3][4]: {{{#!vorlage Befehl
sudo mkfs -t exfat /dev/sdd1}}}{{{
mkexfatfs 1.0.1
Creating... done.
Flushing... done.
File system created successfully.
}}}
 1. Oder man schreibt das Dateisystem nicht in die erste Partition, sondern direkt auf das Gerät, vergibt den Datenträger-Namen "SD-Karte" und setzt die Clustergröße auf 1 MiB (`-s 2048`) hoch (Default ist 4k = `-s 8`): {{{#!vorlage Befehl
sudo mkfs.exfat -n "SD-Karte" -s 2048 /dev/sdd
}}}
 1. Das ausgehängte Dateisystem kann mit `fsck` überprüft werden: {{{#!vorlage Befehl
sudo fsck /dev/sdd}}} {{{
fsck from util-linux 2.20.1
exfatfsck 1.0.1
Checking file system on /dev/sdd.
File system version           1.0
Sector size                 512 bytes
Cluster size                  1 MB
Volume size                 932 GB
Used space                 9944 KB
Available space             932 GB
Totally 0 directories and 0 files.
File system checking finished. No errors found.
}}} Hier kann man auch sehen, dass die Clustergröße 1 MiB ist.

= Links =
 * [github:relan/exfat:Projektseite] {en}
 * [:Dateisystem:] {Übersicht} Übersichtsartikel

#tag: Dateisystem, System