Inhaltsverzeichnis
FAT
FAT - File Allocation Table - Dateizuordnungstabelle
FAT ist die einzige bedeutende Neuerung von QDOS gegenüber CP/M. Zu der Familie der FAT-Dateisysteme gehören:
- FAT12 – (1980) wird heute für jede DOS-Diskette verwendet (auch unter Windows)
- FAT16 – (1983) wird heute meist auf allen Arten von mobilen Datenträgern (außer Disketten) mit einer Größe von bis zu 2, selten bis 4 GiB verwendet.
- FAT32 – (1997) wird z. B. in allen Arten von mobilen Speichern von mehr als 2 GiB Kapazität genutzt. Von allen Windows-Versionen ab Windows 95b und neueren DOS-Systemen unterstützt.
- FATplus – Erweiterung für FAT16 (theoretisch) und FAT32, erhöht die maximale Größe einer Datei von 4 GiB auf 256 GiB (wird derzeit unter anderem von Enhanced DR-DOS und Deskwork unterstützt)
- exFAT – (auch als FAT64 bekannt) ist ein speziell für Flash-Speicher entwickeltes Dateisystem. Maximale Dateigröße 16 Exabyte. Unterstützt Rechtevergabe auf Dateisystemebene.
VFAT (Virtual File Allocation Table) ist eine Erweiterung des FAT-Formats, die ab Windows 95 zum Einsatz kommt. Es kann auf FAT16 und FAT12, seit 1997 auch auf FAT32 angewendet werden.
Man sollte von allen FAT-Varianten heute nur noch FAT32+VFAT einsetzen.
Linux, USB-Stick, FAT32 und VFAT
Erstmal muss sichergestellt sein, das die DOS-Werkzeuge installiert sind, sonst installieren:
# aptitude install dosfstools util-linux
Unser USB-Stick kann über die Gerätedatei /dev/sdb1/ angesprochen werden, die werden wir mal überprüfen:
# dosfsck -v -n /dev/sdb1
...
dosfsck 3.0.3 (18 May 2009)
dosfsck 3.0.3, 18 May 2009, FAT32, LFN
Checking we can access the last sector of the filesystem
There are differences between boot sector and its backup.
Differences: (offset:original/backup)
0:eb/00, 1:58/00, 2:90/00, 3:4d/40, 4:53/00, 5:57/00, 6:49/00, 7:4e/40
, 8:34/00, 9:2e/00, 10:31/00, 12:02/00, 13:20/00, 14:03/00, 16:02/00
, 21:f8/00, 24:3f/00, 26:ff/00, 28:3f/00, 32:c1/00, 33:ff/00, 34:e1/00
, 35:01/00, 36:1f/00, 37:1e/00, 44:02/00, 48:01/00, 50:06/00, 64:80/00
, 66:29/00, 67:03/00, 68:18/00, 69:ef/00, 70:24/00, 71:49/40, 72:4e/00
, 73:54/00, 74:45/00, 75:4e/40, 76:53/00, 77:4f/00, 78:20/00, 80:20/00
, 81:20/00, 82:46/00, 83:41/40, 84:54/00, 85:33/00, 86:32/00, 88:20/00
, 89:20/00, 90:fa/00, 91:fc/f0, 92:31/00, 93:c0/00, 94:8e/00, 96:bc/00
, 97:b4/00, 98:7b/00, 99:06/00, 100:57/00, 101:8e/00, 102:c0/00, 103:b9/b0
...
Not automatically fixing this.
Boot sector contents:
System ID "MSWIN4.1"
Media byte 0xf8 (hard disk)
512 bytes per logical sector
16384 bytes per cluster
3 reserved sectors
First FAT starts at byte 1536 (sector 3)
2 FATs, 32 bit entries
3948032 bytes per FAT (= 7711 sectors)
Root directory start at cluster 2 (arbitrary size)
Data area starts at byte 7897600 (sector 15425)
986652 data clusters (16165306368 bytes)
63 sectors/track, 255 heads
63 hidden sectors
31588289 sectors total
Checking for unused clusters.
Checking free cluster summary.
/dev/sdb1: 13983 files, 762174/986652 clusters
Hier werden Fehler ausgewiesen, die wollen wir dann mal beheben.
Allerdings steht dort Not automatically fixing this., also machen wir das interaktiv:
# dosfsck -r /dev/sdb1 dosfsck 3.0.3, 18 May 2009, FAT32, LFN There are differences between boot sector and its backup. Differences: (offset:original/backup) 0:eb/00, 1:58/00, 2:90/00, 3:4d/40, 4:53/00, 5:57/00, 6:49/00, 7:4e/40 , 8:34/00, 9:2e/00, 10:31/00, 12:02/00, 13:20/00, 14:03/00, 16:02/00 , 21:f8/00, 24:3f/00, 26:ff/00, 28:3f/00, 32:c1/00, 33:ff/00, 34:e1/00 , 35:01/00, 36:1f/00, 37:1e/00, 44:02/00, 48:01/00, 50:06/00, 64:80/00 , 66:29/00, 67:03/00, 68:18/00, 69:ef/00, 70:24/00, 71:49/40, 72:4e/00 , 73:54/00, 74:45/00, 75:4e/40, 76:53/00, 77:4f/00, 78:20/00, 80:20/00 , 81:20/00, 82:46/00, 83:41/40, 84:54/00, 85:33/00, 86:32/00, 88:20/00 , 89:20/00, 90:fa/00, 91:fc/f0, 92:31/00, 93:c0/00, 94:8e/00, 96:bc/00 , 97:b4/00, 98:7b/00, 99:06/00, 100:57/00, 101:8e/00, 102:c0/00, 103:b9/b0 ... 1) Copy original to backup 2) Copy backup to original 3) No action ? 1 Starting check/repair pass. FATs differ but appear to be intact. Use which FAT ? 1) Use first FAT 2) Use second FAT ? 1 Cluster 382 out of range (227563755 > 986653). Setting to EOF. Cluster 383 out of range (239687507 > 986653). Setting to EOF. Cluster 384 out of range (3223092 > 986653). Setting to EOF. ... /FSCK0003.REC File size is 16384 bytes, cluster chain length is > 16384 bytes. Truncating file to 16384 bytes. /FSCK0004.REC File size is 16384 bytes, cluster chain length is > 16384 bytes. Truncating file to 16384 bytes. /FSCK0005.REC Contains a free cluster (63488). Assuming EOF. ... Free cluster summary wrong (224355 vs. really 231957) 1) Correct 2) Don't correct ? 1 Perform changes ? (y/n) y /dev/sdb1: 14106 files, 754695/986652 clusters
Scheinbar hat er etwas gemacht, die Fehlermeldungen sind aber nachwievor da…
Also hab ich den Stick nochmal mit FAT32+VFAT formatiert…
# mkfs -t vfat -F 32 -n STICK16GB /dev/sdb1 mkfs.vfat 3.0.3 (18 May 2009)
…und jetzt ist alles wieder gut.
ACHTUNG: Der Name (-n) darf nur max. 11 Zeichen lang sein!
