Scan and Fix

USBDLM

 

"Scan and Fix" (überprüfen und reparieren)


 

Nach dem Anschließen eines FAT-formatierten USB-Wechseldatenträgers erscheint seit Windows Vista oft der "Scan and Fix"-Dialog - auf deutsch "überprüfen und reparieren".

 

Nachdem einmal jenes "Scan and Fix" durchgeführt wurde (alternativ ein CHKDSK /F), sollten es beim nächsten Anschließen nicht wieder kommen.

 

Tatsächlich kommt es oft immer und immer wieder, um dann doch keine Fehler zu finden. Es nervt einfach nur...

 

 

Warum?

 

Ein Blick auf den Bootsektor vor und nach dem "Scan and Fix" verrät, dass immer dann danach gefragt wird, wenn ein bestimmtes Bit gesetzt ist. Setzt man es manuell zurück, kommt keine Frage nach "Scan und Fix" mehr.

 

USBDLM kann genau das beim Anschließen eine USB-Laufwerkes tun:

 

[Settings]

PreventVistaScanAndFix=1

 

 

Was genau macht USBDLM?

 

Besagtes Bit im Bootsektor befindet sich im Wert "BS_Reserved1", siehe Microsofts FAT32 File System Specification (fatgen103.doc).

 

Normalerweise ist der Wert 0, ist er 1 springt "Scan and Fix" an.

 

Wird ein neues USB-Laufwerk angeschlossen, sucht USBDLM darauf nach einer FAT-Partition und setzt in deren Bootsektor den Wert ggf. auf 0 zurück. Gelingt das, bevor Windows das Bit liest, kommt kein "Scan and Fix". Meist klappt das rechtzeitig, aber nicht immer.

 

Das doktort natürlich nur am Symptom herum, besser ist es, erst gar kein gesetztes "Dirty-Bit" zu haben:

 

Das Bit wird immer dann gesetzt, wenn eine Dateigröße geändert sowie wenn eine Datei angelegt oder gelöscht wird.

Zurückgesetzt wird es unter Windows 7 ca. 1,5 Sekunden nach einer Größenänderung, aber erst ca. 30 Sekunden nachdem eine Datei gelöscht oder neu angelegt wurde! Ob ein Schreibcache aktiv ist, spielt offenbar keine Rolle. Das sind nur erste Beobachtungen mit meinem FAT-Dirty-Bit-Tool: WatchFatDirtyBit.zip

 

Also immer schön "Auswerfen" oder "Hardware sicher entfernen" nutzen, das setzt das Bit zurück auf Null.

 

 

Auch bei NTFS-Laufwerken kann "Scan and Fix" anspringen, hier kann USBDLM aber nicht helfen.