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:

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!