6
Dezember
2022
exFAT-Dateisystem für tragbare Speichergeräte
16:06

exFAT-Dateisystem für tragbare Speichergeräte

6 Dezember 2022 16:06

Warum ist exFAT besser als NTFS?

Für die Arbeit kaufte die Organisation eine tragbare SSD-Festplatte und ein Gehäuse für HDD 2,5, um das Videoarchiv zu speichern. Bevor ich die Festplatte verwendet habe, habe ich darauf eine MSDOS-Partitionstabelle erstellt und die Partition im NTFS-Dateisystem formatiert. Nach einer Weile wurde beim Anschließen eines USB-Kabels das Öffnen in Windows 10 und 8.1 gestoppt – „Zugriff verweigert“.

Ich habe den Inhalt unter Linux auf eine größere interne Festplatte kopiert. Diesmal habe ich die SSD auf exFAT formatiert.
Jetzt werde ich exFAT immer für USB-Sticks und tragbare Festplatten verwenden!

Die Hauptvorteile von exFAT gegenüber NTFS sind unten aufgeführt:

1) Mit exFAT können Sie wie NTFS Dateien speichern, die größer als 4 GB sind.

2) Die Linux-exFAT-Unterstützung ist in Kernel 5.4 oder höher integriert. Während die NTFS-Unterstützung durch das optionale Paket „ntfs-3g“ implementiert wird.

3) Die Verwendung von exFAT reduziert die Belastung des Prozessors und des Festplattencontrollers beim Kopieren von Informationen und erhöht die Leistung.

4) Es gibt keine Probleme mit Benutzer- und Gruppenrechten – wie in jedem FAT gibt es keine. Daher treten keine Probleme mit der Unfähigkeit auf, die Medien zu lesen oder darauf zu schreiben.

5) Viele USB-Sticks sind in exFAT vorformatiert. ExFAT kann aber auch für Backup-Festplatten verwendet werden, auf die Archive, Datenbankkopien oder Videodateien kopiert werden.

6) exFAT ist eines der am besten kompatibelsten Dateisysteme mit tragbaren Geräten (Handys, MP3-Player) sowie mit Fernsehern und stationären DVD-Playern. Die ExFAT-Unterstützung wurde erstmals in Windows XP (Update KB955704), Windows 7 usw. implementiert, in Linux ab Kernel 5.4 und höher.

7) exFAT unterstützt nur lange Dateinamen.

8) Die maximale Anzahl von Dateien in einem Verzeichnis wird tatsächlich durch die Anzahl der Cluster begrenzt.

9) Effizientere Aufzeichnung langer Dateien ohne Fragmentierung. In exFAT zeigt ein Bit im Verzeichniseintrag an, dass die Datei zusammenhängend (nicht fragmentiert) ist, und weist den exFAT-Treiber an, FAT zu ignorieren. Während NTFS ständig auf die Blocktabelle zugreifen muss. Dies verbessert die Geschwindigkeit von exFAT beim Kopieren von Dateien.

10) Es gibt eine Freiraumkarte, die auch das Schreiben großer Dateien einfacher und schneller macht.

11)Der Hauptvorteil von exFAT: Das exFAT-Dateisystem wird von allen Microsoft-Betriebssystemen erkannt, was ermöglicht Daten übertragen dazwischen Linux und **Windows. Außerdem versteht exFAT das Betriebssystem für Smartphones und Tablets – Android 9.0 und höher, und auch iOS** für Apple Mac (hinzugefügt am 06.02.2025).

Optimale exFAT-Clustergröße. Reservieren von Speicherplatz am Anfang der Festplatte

Beim Formatieren einer großen Festplatte können Sie eine Clustergröße angeben, die deutlich über den standardmäßigen NTFS-4 kB liegt. Die maximale Größe beträgt 32 MB. Für eine Festplatte mit 256 MB bis 32 GB sind 32-KB-Cluster optimal.

Formatieren einer Partition in Windows in das exFAT-Format mit einer Clustergröße von 32 kB:

diskpart
select disk 0
list partition
select partition 1
format fs=exFAT unit=32k quick

Beim Formatieren einer Festplatte von Linux in das exFAT-Format können Sie angeben zwei parameter - Grenze „-b“ und Clustergröße „-c“.
Der untere Rand wird für die sogenannte „Ausrichtung“ des Abschnitts benötigt. Dies erhöht die Geschwindigkeit des Kopierens von Informationen.

Das Ausrichtungsargument wird in Bytes angegeben oder kann mit dem Suffix m/M für Megabyte oder dem Suffix k/K für Kibibyte angegeben werden und muss eine Zweierpotenz sein. Einige Medien, wie z. B. SD-Karten, erfordern diese Einstellung für optimale Leistung und Langlebigkeit der Medien.

mkfs.exfat /dev/sdd1 -b 64k -c 32k -L "Cruiser 8Gb" 

wo:
/dev/sdd1 – Ersetzen Sie den Volume-Namen durch den echten Namen (kann mit dem Befehl lsblk gefunden werden).
-b – „Grenz“-Parameter, um freien Speicherplatz am Anfang der Festplatte zuzuweisen und so die Zuverlässigkeit und Leistung zu verbessern.
-c – Clustergröße.
-L „Label-Name“ – ein symbolisches Datenträger-Label, wobei der Text-Label-Name bis zu 11 Zeichen lang ist (Leerzeichen sind erlaubt).

Für Flash-Laufwerke und microSD-Speicherkarten, die kein Volume haben (z. B. gibt lsblk /dev/sdd aus).

sudo mkfs.exfat /dev/sdd -b 64k -c 32k

wo:
/dev/sdd ist der Name des Datenträgers, den der Befehl lsblk für die Speicherkarte angezeigt hat.

Die von der USB Flash Manufacturers Association empfohlenen Werte -b und -c für Datenträger unterschiedlicher Größe:

Kapazität des USB-Sticks, GB Optionen -b und -c
1-2 -b 64k -c 32k
2-32 -b 4M -c 32k
32-128 -b 16M -c 128k
128-512 -b 32M -c 256k
512-2048 -b 64M -c 512k

Für ein 16-GB-Flash-Laufwerk lautet beispielsweise der Befehl zum Erstellen eines exFAT-Dateisystems auf dem Volume /dev/sdd1:

mkfs.exfat /dev/sdd1 -b 4M -c 32k

Dabei ist /dev/sdd1 – durch den Namen der Partition Ihrer Festplatte/Ihres Flash-Laufwerks aus der Ausgabe des Befehls lsblk zu ersetzen.

Für eine 32 GB microSD-Speicherkarte der Befehl zum Erstellen des exFAT-Dateisystems.

sudo mkfs.exfat /dev/sdd -b 16M -c 128k

wobei /dev/sdd – durch den Namen der microSD-Speicherkarte ersetzen, der vom Befehl lsblk ausgegeben wurde.

Angabe der Anzahl der Sektoren pro Cluster im Parameter "-s"

Einige Linux-Distributionen (z. B. Runtu LITE) verwenden eine Variante des Programms mkfs.exfat, bei der im Parameter "-s" lediglich die Anzahl der Sektoren pro Cluster angegeben werden muss, nicht aber die Clustergröße. Der Parameter "-L Name" fehlt ebenfalls.

Um die Clustergröße in Sektoren anzugeben, müssen Sie zunächst die Sektorgröße kennen:

lsblk
fdisk -l /dev/sdb

Disk /dev/sdb: 3,63 GiB, 3879731200 Bytes, 7577600 Sektoren
Datenträgermodell: USB-Stick
Einheiten: 1 Sektor * 512 = 512 Bytes
Sektorgröße (logisch/physisch): 512 Bytes / 512 Bytes
E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes

Die physische Sektorgröße beträgt 512 Bytes.

Optimale Größen bei Angabe des Parameters -s:

USB-Stick-Kapazität, GB Optimale Clustergröße, KB Clustergröße in Sektoren
(-s-Parameter)
1 - 2 32 -s 64
2 - 32 32 -s 64
32 - 128 128 -s 256
128 - 512 256 -s 512
512 - 2048 512 -s 1024

Beispielbefehl für einen 4-GB-USB-Stick

sudo mkfs.exfat /dev/sdb1 -s 64

Typische Fehler bei der Partitionierung und Verwendung von Flash-Festplatten

Das Hauptproblem, das auftreten kann, ist der Ausfall der Flash-Disk, wenn die Partitionstabelle gelöscht und an ihrer Stelle eine andere Partitionstabelle erstellt wird (z. B. beim Ausführen des Befehls).dd id=file.iso of=/dev/sdc). Einige USB-Sticks können nur mit einer werkseitig erstellten Partitionstabelle arbeiten und vertragen deren Änderung nicht. Sie können solche „Flash-Laufwerke“ nur in exFAT formatieren, ohne die Struktur zu ändern. Ein Zeichen für einen Ausfall des Flash-Laufwerks ist die Meldung „Kein Medium verfügbar“. In diesem Fall wird der Controller vom Computer erkannt, wenn er an die USB-Buchse angeschlossen ist, der interne Speicher des Mediums ist jedoch nicht sichtbar (Volume 0 Bytes, 0 Bytes frei).

Ein „totes“ Flash-Laufwerk kann nicht mit Windows- oder Linux-Befehlen wiederhergestellt werden (hier helfen nur spezielle Low-Level-Programme von Herstellern, die direkt auf die Controller zugreifen und die Parameter der Speicherchips angeben. Solche Programme sind oft nicht mit dem installierten Controller kompatibel und verfügen über eine komplexe Schnittstelle, die die Angabe des genauen Controller-Typs erfordert (Sie können dies herausfinden, indem Sie das Flash-Laufwerk zerlegen).

Liste der tragbaren Speichergeräte, die scheitern beim Ausführen eines DD-Befehls oder Löschen einer Partitionstabelle mit parted:

  • ADATA C008 [AC008-8G-RKD]
  • USB-Kabel von Aliexpress mit zwei USB- und Micro-USB-Anschlüssen (Chipbank CBM2199E Controller-Chip). Beschriftung auf der Leiterplatte: CBM2199. Möglicherweise andere Modelle von Chipsbank-Flash-Laufwerken.

Erstellen Sie eine Festplattenpartitionstabelle und formatieren Sie sie als exFAT in Windows

cmd
diskpart

list disk
select disk 1
clean
list disk
create partition primary
active
format fs=exfat unit=32k label="Flash disk" quick
assign letter=f

Erstellen einer Festplattenpartitionstabelle und Formatieren dieser in exFAT unter Linux

Zuerst müssen Sie die notwendigen Pakete installieren:

sudo apt-get update
sudo apt-get install gparted gnome-disk-utility

Lassen Sie uns nun das Programm ausführen:

sudo gparted

Befolgen Sie als Nächstes die Schritte wie in den Screenshots unten:

Ersetzen Sie die Buchstaben SDA durch den Laufwerksnamen (SDD, SDE usw.), der dem tragbaren Laufwerk entspricht – siehe Befehlsausgabe lsblk.

1.
create0
2.
erstellen1
3.
erstellen2
4.
erstellen3
5.
erstellen4
6.
erstellen5
7.
erstellen6
8.
erstellen7
9.
erstellen8
10.
erstellen9

Um die Festplatte bereitzustellen, starten Sie das Festplatten-Snap-In (sudo gnome-disks), wählen Sie die Festplatte und Partition aus und klicken Sie auf die Schaltfläche „Dreieck“.
montieren

Die neue Festplatte ist einsatzbereit.

Mounten eines Laufwerks mit einem anderen Namen

Wenn Sie das Laufwerk an USB anschließen, wird das externe Laufwerk automatisch in einen Ordner gemountet /media/username/label:
montiert

Wenn Sie nicht zufrieden sind Name des Einhängepunkts standardmäßig kann es durch Klicken auf die Schaltfläche mit dem Bild von zwei Zahnrädern geändert werden.
Optionen

Deaktivieren Sie den Schalter "User session defaults" =>Ändern Sie den Einhängepunkt.
ändern

Geben Sie dann einen anderen Mount-Punkt an:
Sicherung

Damit die Einstellungsänderungen übernommen werden, müssen Sie im Snap-In „Festplatten“ die Festplatte aushängen (Schaltfläche mit einem Quadrat – „Stopp“) und die Festplatte erneut einhängen (Schaltfläche mit einem Dreieck).

Backup2

Der Einhängepunkt wurde in geändert /mnt/backup. Die Festplatte ist im „PCManFM“-Explorer sichtbar.

Korrekter Datenträgerauswurf

Bevor Sie das Laufwerk physisch trennen, klicken Sie im Datei-Explorer auf das Symbol „Auswerfen“.
aussteigen

Ergänzung. Fragen und Antworten.

Frage: Ab welcher Kernelversion gibt es unter Linux exFAT-Unterstützung?

Antwort: für niedrige Kernel-Versionen 4.1 - 5.15 sie können einen Backport namens verwenden Linux-Exfat-oot, das kompiliert und in den Kernel eingebaut werden muss.

Native, also „native“ exFAT-Unterstützung beim Mounten von Festplatten in einer grafischen Oberfläche – mit dem Kernel 5.19 und höher. (Quelle).

Auch in Android 9.0 „Pie“ und höher (Android-Kernel 4.4.146+).

Frage: Ab welcher Version des Ubuntu-Betriebssystems ist die Unterstützung für exFAT FS standardmäßig implementiert?

Antwort:Ubuntu 20.10 und 22.04 LTS und auch neuere Linux Mint 21.x LTS basierend auf 22.04.

Quelle 1,Quelle 2

Was ist der Zweck des Exfat-Fuse-Pakets?

Antwort: Das Paket exfat-fuse wird für das modulare FUSE-Dateisystem für die Benutzerumgebung der Ubuntu-Betriebssystemversion unter 22.04 verwendet.

In Ubuntu OS 20.04 LTS und früher müssen Sie das Modul zusätzlich installieren Exfat-Sicherung.

sudo apt install exfat-fuse

Überprüfen Sie:

uname -r
lsb_release -a

Wenn der Kernel höher als 5.19 und OS 22.04 LTS ist, dann das Paket Exfat-Sicherung nicht erforderlich ist, muss es entfernt werden.

sudo apt remove exfat-fuse

Wie überprüfe ich die exFAT-Unterstützung auf Kernelmodulebene?

Antwort:

find /lib/modules/ -iname '*exfat*'

Wie überprüfe ich die exFAT-Unterstützung in älteren Betriebssystemen (vor Ubuntu 20.10)?

Das Paket ist für die exFAT-Unterstützung in älteren Betriebssystemen verantwortlich Exfat-Sicherung für das modulare Dateisystem FUSE:

dpkg -s exfat-fuse

Dieses Paket kann separat mit einem Befehl installiert werden, der die exFAT-Unterstützung für ältere Linux-Betriebssysteme aktiviert:

sudo apt-get install exfat-fuse

Frage: Welches Paket enthält Dienstprogramme für die Arbeit mit exFAT?

Antwort:exfatprogs.

sudo apt install  exfatprogs

exfat-fuse – Tools zum Erstellen, Validieren und Markieren von exFAT-Dateisystemen.

Tools zur Verwaltung der erweiterten Dateisystem-Zuordnungstabelle.
Dieses Paket stellt Tools zum Erstellen, Validieren und Markieren eines Dateisystems bereit.
Es enthält
- mkfs.exfat zum Erstellen eines exFAT-Dateisystems
- fsck.exfat zum Überprüfen und Reparieren des exFAT-Dateisystems
- tune.exfat zum Drucken und Bearbeiten des Dateisystemlabels
Die in diesem Paket enthaltenen Tools sind exfatprogs,
gewartet von Samsung-Ingenieuren, die Linux exFAT unterstützt haben.
Eine ähnliche, aber unabhängige Implementierung dieser Tools, geschrieben vom Autor der Exfat-Fuse-Implementierung,
verfügbar im exfat-utils-Paket.
Homepage:https://github.com/exfatprogs/exfatprogs.

Frage: Wie kann ich einer Festplatte ein neues Label zuweisen, ohne sie zu formatieren?

Antwort:

sudo sudo exfatlabel /dev/sdd1 "Disk Label" 

Frage: Wie lang sollte ein exFAT-Datenträgeretikett sein?

Antwort: Theoretisch 15 Zeichen, aber aus Kompatibilitätsgründen mit exFAT 1.0 wurde eine Länge von 11 Zeichen gewählt, der Rest ist reserviert.
Richtig:0 - 11 Zeichen.

Frage: Was soll ich tun, wenn beim Ausführen von exfatlabel die folgende Meldung angezeigt wird:
„Öffnen fehlgeschlagen: /dev/sdd, Gerät oder Ressource ausgelastet“

Antwort: Sie müssen den Gerätenamen des externen Laufwerks herausfinden:

mount | grep fat

Hängen Sie das Volume aus (in diesem Fall sdd1):

sudo umount /dev/sdd1

Wiederholen Sie den Befehl „exfatlabel“ für Volume sdd1:

sudo exfatlabel /dev/sdd1 „Cruizer_8Gb“

Trennen Sie das Laufwerk von der USB-Buchse und schließen Sie es erneut an.
Die Festplatte ist nun mit einem neuen Label gemountet.

Wer besitzt das Patent für das exFAT-Dateisystem?

Die Spezifikation des Dateisystems Extended File Allocation Table (exFAT) wurde von Microsoft entwickelt und ist durch mehrere Patente geschützt, darunter das US-Patent Nr. 2009/0164440 A1. Alle Implementierungen des exFAT-Dateisystems, einschließlich solcher, die auf Open-Source-Code basieren (wie Linux, Android, FATfs usw.), unterliegen der Zahlung von Lizenzgebühren an Microsoft. Das bedeutet: Wenn Sie ein Produkt entwickeln und einreichen, das Funktionen enthält, die durch die exFAT-Patente geschützt sind, müssen Sie – unabhängig von der Herkunft des Codes – vor der Veröffentlichung Lizenzgebühren entrichten, um die Lizenzbedingungen von Microsoft einzuhalten. Quelle.

Quellen:
Mann mkfs.exfat.8
https://en.wikipedia.org/wiki/ExFAT

Letzte Änderung: 06.02.2025