Tips zu USB-Sticks
 
Home

English Version of this page
 
  Probleme mit USB-Sticks
 
Das ist ein weites Feld und hat seine eigene Seite bekommen:

Troubleshooting für USB-Sticks

 


  Laufwerk oder nicht
 
Ein USB-Stick (in englisch 'flash drive', 'pen drive' oder 'USB disk') ist Laufwerk und Datenträger in einem - deshalb kommt und geht mit dem Stick auch dessen Laufwerks-Buchstabe. Dagegen bleibt bei einem Card-Reader beim Entnehmen der Karte das Laufwerk vorhanden.
Bei einem erstmals angeschlossenen USB-Stick springt deshalb immer das Windows Plug and Play an und vergibt den ersten freien Laufwerks-Buchstaben. Das passiert u.U. auch dann, wenn man den gleichen Stick nur an einen anderen Port anschließt, nämlich dann, wenn beim USB-Laufwerk die USB-Seriennummer eingespart wurde und Windows das Laufwerk an einem anderen Port nicht sicher als das Selbe wiedererkennen kann.
Hätte sich eines der Flash-Karten-Formate als Wechseldatenträger durchgesetzt, hätte man wie bei einem Disketten-Laufwerk einen bleibenden LW-Buchstaben mit oder ohne Medium drin. Schön wär's gewesen.

Um Einfluß auf die Vergabe der LW-Buchstaben zu bekommen, habe ich einen kleinen Win32-Dienst geschrieben, den USB Drive Letter Manager.

 


  Wie Windows Laufwerksbuchstaben vergibt
 
Für ein Laufwerk für das Windows keine Zuordnung zu einem Laufwerksbuchstaben gespeichert hat, wird der erste verfügbare Buchstabe zugeordnet. Die Suche geht dabei aufwärts im Alphabet und beginnt bei 'A' für Floppy-Laufwerke, bei 'D' für CD-ROM-Laufwerke und bei 'C' für alle anderen.
Windows kann sich genau eine Zuordnung pro Laufwerk und pro Buchstabe merken - das Laufwerk bekommt also beim nächsten Anschließen wieder den selben Buchstaben. Während das Laufwerk nicht angeschlossen ist, ist der Buchstabe aber nicht reserviert und wird bei Bedarf einem anderen Laufwerk zugeordnet. Wenn das passiert, ist die erste Zuordnung überschrieben und das erste Laufwerk bekommt beim nächsten Anschließen wieder den ersten freien Buchstaben, selbst wenn der zuvor zugeordnete Buchstabe dann schon wieder frei ist. Die Zuordnung ist einfach nicht mehr vorhanden.
Netz- und Subst-Laufwerke bleiben unter XP bis einschließlich SP2 bei all dem unberücksichtigt - XP hatte früher also keine Hemmungen, den Buchstaben einer Netz-Freigabe nochmal für ein USB-Laufwerk zu vergeben, Microsoft nennt das 'ein Problem' und bietet seit Dezember 2007 einen Hotfix für's englischsprachige XP an (WindowsXP-KB297694-x86-ENU.exe). Auch das Service Pack 3 behebt das Problem weitgehend. Nicht behoben ist foldendes Szenario: Lokale Laufwerke C: und D:, USB-Laufwerk auf E:. USB-Laufwerk entfernen, Netzlaufwerk auf E: anlegen, USB-Laufwerk wieder anschließen. XP mit SP3 ordnet dem USB-Laufwerk wieder E: zu, obwohl inzwischen mit einem Netz-Laufwerk belegt. Ab Vista ist auch das behoben.

Will man für seine externen Laufwerke gleichbleibende Buchstaben haben, muß man jedem Laufwerk einen eigenen Buchstaben spendieren - sonst wird's mit Bordmitteln nichts.

Mit mit meinem USB Drive Letter Manager ist das natürlich alles kein Problem :-)

 


  Wechseldatenträger oder was?
 
USB-Laufwerke können sich bei Windows als 'Wechseldatenträger' oder als 'Lokaler Datenträger' zu erkennen geben und daraus ergeben sich durchaus Unterschiede, die unter XP bis Windows 8 so aussehen:


Wechseldatenträger
Lokaler Datenträger
GetDriveType liefert
DRIVE_REMOVABLE
DRIVE_FIXED
mehrere Partitionen möglich
nein
ja
Papierkorb-Funktion
nein
ja
autorun.inf - open= funktioniert
nein
ja (bis einschl. XP-SP1)
XP aktiviert die Systemwiederherstellung für das Laufwerk
nein
ja
Windows legt Ordner 'System Volume Information' an
nein
ja
'Auswerfen' im XP-Explorer-Kontextmenü
ja
nein
Formatieren mit NTFS bei Richtlinie 'Für schnelles Entfernen optimieren'
nein (ja wenn >32GB)
ja
Formatieren mit NTFS bei Richtlinie 'Für Leistung optimieren' ja
ja
Schreibcache aktiv bei FAT und Richtlinie 'Für schnelles Entfernen optimieren' nein
nein
Schreibcache aktiv bei FAT und Richtlinie 'Für Leistung optimieren' nein
ja
Schreibcache aktiv bei NTFS und Richtlinie 'Für schnelles Entfernen optimieren' ja
ja
Schreibcache aktiv bei NTFS und Richtlinie 'Für Leistung optimieren' ja
ja

USB-Sticks geben sich meist als 'Wechseldatenträger' zu erkennen (egal ob sich der Datenträger tatsächlich wechseln läßt, wie z.B. bei einem Flashkarten-Leser), USB-Festplatten fast durchweg als 'Lokale Datenträger'.

Wechseldatenträger oder nicht hat nichts mit der Partitionierung oder der Formatierung zu tun. Es wird über ein Bit im hardware device descriptor bestimmt, das 'Removable Media Bit', kurz RMB. Mit einem passenden Filtertreiber läßt sich das wegzaubern, siehe hier: Wechseldatenträger partitionieren

 


  Schreibcache oder nicht
 
Unter Windows XP und höher geht das Schreiben vieler kleiner Dateien auf einen USB-Wechseldatenträger viel langsamer als unter Windows 2000, während es bei großen Dateien keinen nennenswerten Unterschied gibt.
Das liegt daran, dass Microsoft ab der Beta 2 von Windows XP USB-Massenspeicher "Für schnelles Entfernen optimiert", sprich, den Schreibcache standardmäßig deaktiviert hat, s. 'Windows XP and Surprise Removal of Hardware' bei Microsoft. Hier wird auch erwähnt, dass sich der Schreibcache über eine INF-Datei aktivieren ließe ('There is also a method for vendors to enable write caching via an INF file.'). Darüber konnte ich aber nichts weiter in Erfahrung bringen. Es wird auch erwähnt, dass sich die Cache-Einstellung im Geräte-Manager ändern ließe ("Note that caching policy defaults for a given device can be changed in Device Manager."). Bei Nicht-USB-Festplatten findet sich bei den Richtlinien tatsächlich die Option "Schreibcache auf dem Datenträger aktivieren", was wohl den Hardware-Schreibcache im Laufwerk meint, also die üblichen 2 bis 64MB Cache von Festplatten.
Bei USB-Laufwerken gibt es nur 'Für schnelles Entfernen optimieren' und 'Für Leistung optimieren' , mit der Behauptung, letztere würde einen Schreibcache aktivieren. Tut es aber bei 'Wechseldatenträgern', sprich bei fast allen USB-Sticks nicht:
Es macht dann keinen fühl- oder meßbaren Unterschied, ob 'Für Leistung optimieren' und 'Für schnelles Entfernen optimieren' ausgewählt ist. Bei ersterer Einstellung wird lediglich die Möglichkeit aktiviert, den Stick mit NTFS zu formatieren. Aber genau das Formatieren mit NTFS verhilft auch Wechseldatenträgern zu einem Schreibcache! Das Schreiben vieler kleiner Dateien geht plötzlich auch ab XP rasend schnell.

Update Februar 2011:
Ich wurde darauf hingewiesen, dass sich der Schreibcache auf für FAT-formatierte USB-Wechseldatenträger aktivieren läßt, und zwar mittels des Registry-Wertes WriteCacheEnableOverride=1 - genau dort wo auch der Wert RemovalPolicy steht. USBDLM kann das ab V4.6 setzen, mein Tool zur manuellen Aktivierung heißt USB-WriteCache.
Somit braucht es also kein NTFS um einem USB-Wechseldatenträger einen Schreibcache zu verpassen.

Trotzdem NTFS?
Vorteile:

  • Mit WriteCacheEnableOverride kann man zwar einen Schreibcache aktivieren, aber nur auf den eigenen Rechnern. Mit NTFS hat man überall einen Schreibcache.
  • NTFS speichert kleine Dateien zusammen mit dem Verzeichniseintrag - das spart Schreibzugriffe.
  • NTFS unterstützt Datenkompression, auch das spart - bei komprimierbaren Daten - Schreibzugriffe.
  • FAT/FAT32 wird bei eine großen Anzahl von Dateien in einem Verzeichnis beim Auffinden von Dateien linear langsamer, NTFS nicht.
  • NTFS unterstützt Dateien >4GB.

Nachteile:
NTFS ist eigentlich für USB-Sticks eher ungeeignet, da es als journalling Filesystem etwas Overhead und damit zusätzliche, Flash-verschleißende Schreibzugriffe mit sich bringt. Ich meine, oben genannte Vorteile wiegen das auf.

Etwas ungesund für Flash-Laufwerke ist NTFS, weil es auch für einfache Lesezugriffe auf eine Datei dafür Datum und Uhrzeit speichert. So dramatisch wirkt sich das in der Praxis aber nicht aus, weil die Zugriffszeit nur bei passender Gelegenheit oder nach spätestens einer Stunde oder vor dem Auswerfen wirklich auf den Datenträger geschrieben wird. Ob das auf Wechseldatenträgern überhaupt gemacht wird, müßte mal untersucht werden.
Dass das auch beim "Directory Listing" (was immer damit genau gemeint ist) passiert, läßt sich abschalten, allerdings nur einheitlich für alle Laufwerke:
Unter [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem] einen neuen DWord-Eintrag namens NtfsDisableLastAccessUpdate anlegen und auf 1 setzen. Oder folgende REG-Datei runterladen und doppelklicken: NtfsDisableLastAccessUpdate1.reg, oder per Kommandozeile:

fsutil behavior set disablelastaccess 1
Ab Vista geht das auch detailierter einzustellen: NtfsDisableLastAccessUpdate bei Microsoft

Um unter XP einen USB-Wechseldatenträger mit NTFS zu formatieren muß man nicht unbedingt auf die Richtlinie 'Für Leistung optimieren' umschalten. Mit dem Kommandozeilen-Tool CONVERT gehts auch so. Beispiel:

convert u: /fs:ntfs
Der Stick darf dabei nicht zu voll sein weil NFTS mehr Platz für Verwaltungs-Informationen als FAT benötigt, wodurch auch einige MB für die Nutzung verlorengehen. Am besten den Stick vorher leeren.
Allerdings bekommt man mit CONVERT u.U. eine Clustergröße von 512 Bytes, unter Windows 2000 generell und unter XP falls die FAT-Cluster nicht an 4-KB-Grenzen ausgerichtet sind - das kostet Geschwindigkeit. XP berücksichtigt das und formatiert FAT-Laufwerke mit 4K-ausgerichteten Clustern.
Beim Formatieren über den Windows-Dialog oder FORMAT.EXE auf der Kommandozeile hat man dagegen immer Wahl: 2048 oder 4096 Bytes sind ok. Bei Cluster-Größen über 4096 Bytes stehen Kompression und Verschlüsselung nicht mehr zur Verfügung.

Ein mit NTFS formatiertes Laufwerk funktioniert natürlich nicht ohne weiteres unter DOS und Windows 95/98/ME, sowie nur eingeschränkt unter Linux. Außderdem funktionieren Geräte mit Standalone-Funktion, wie MP3-Player oder Image-Tanks, meist nicht mit NTFS.

Wenn sowohl das Formatieren mit NTFS als auch das Konvertieren fehlschlagen, während das Formatieren mit FAT/FAT32 funktioniert, handelt es sich beim Laufwerk warscheinlich um eine Fälschung, die nur über einen Bruchteil des gemeldeten Speichers verfügt. Da das NTFS-Dateisystem in die Mitte des Datenträgers geschrieben wird, geht das dann ins Leere.

Wie sehr sich der Schreibcache auswirkt, hängt auch vom USB-Laufwerk ab: Bei Festplatten ist es nicht so dramatisch, weil hier 2 bis 64 MB RAM in der Platte das Schlimmste verhindern. USB-Sticks haben sowas nur höchst selten. Hier kommt es auf die Zugriffszeiten an. Aussagekräftig ist die Datenrate bei zufälligen Schreibzugriffen mit kleinen Blöcken. Für diese Info muß man sich im Netz auf die Suche machen, fündig wird man immer öfter bei Amazon in Form der von Nutzern hochgeladenen Benchmark-Screenshots, z.B. hier ein auch im Alltag schneller Sandisk Extreme und ein beim Schreiben großer Blöcke sehr schneller aber kleinen Blöcken massiv einbrechender Kingston DTHX30.

Um das Verhalten des Windows Datei-Caches zu testen, habe ich FileCacheTest geschrieben.
Es schreibt und liest eine Test-Datei und nutzt dabei verschiedene Flags für die Win32-API-Funktion CreateFile und verschiedene Blockgrößen. Das Schreiben in eine neue Datei geht etwas langsamer als in eine vorhandene, da nach jedem Block die Dateigröße angepaßt, also ins Dateisystem geschrieben werden muß, während das beim Schreiben in eine vorhandene Datei entfällt.

Besonders bemerkenswerte Erkenntnisse (ohne WriteCacheEnableOverride):

  • Beim Schreiben auf einen FAT-formatierten Wechseldatenträger gibts einen Schreibcache, wenn die Blockgröße unter 4096 Bytes liegt (bei NTFS-Laufwerken beträgt die 'magische' Blockgröße etwa 512 KB, unter Windows 7 32 MB!)
  • Die Nutzung des Flags FILE_FLAG_RANDOM_ACCESS bewirkt ein Anwachsen des Working Sets des Datei-Caches (beim Schreiben vorrausgesetzt ein Schreibcache ist aktiv), anzusehen mit SysInternals CacheSet oder im Windows-Performance-Monitor die 'Cache Bytes'
  • Die Nutzung des Flags FILE_FLAG_NO_BUFFERING ist der effizienteste Weg, große Dateien zu lesen und zu schreiben
  • Bei USB-Wechseldatenträgern sowie NTFS-Laufwerken haben die Richtlinien 'Für schnelles Entfernen optimieren' und 'Für Geschwindigkeit optimieren' keinerlei Effekt. Aber irgendwie glauben alle dran und spüren den Unterschied ganz deutlich und mit 'Für schnelles Entfernen optimieren' ist Abziehen ohne Abmelden total sicher...

Schreibcache deaktivieren
Es gibt keine bekannte Möglichkeit einen Schreibcache zu deaktivieren, wenn Windows sich für einen entschieden hat, z.B. haben NTFS-Laufwerke immer einen Schreibcache.

 


  Sicheres Abziehen
 
Einen USB-Stick sollte man nicht einfach so abziehen, insbesondere wenn ein Schreibcache aktiv ist, s. oben.
Offizieller Weg ist, den Stick über das grüne Symbol im Systray 'Hardware sicher entfernen' abzumelden. Windows 2000 motiviert den User, das auch wirklich zu machen, indem es sonst meckert, weil man unberechtigterweise ein Gerät aus dem System entfernt hat. Da Windows 2000 für USB-Sticks immer einen Schreibcache aktiv hat, ist das auch angebracht.
XP, Vista und Windows 7/8 meckern zwar nicht, aber auch hier sollte man den Stick vor dem Abziehen abmelden, auf jeden Fall, wenn man sich einen Schreibcache verschafft hat. Bei FAT-formatierten Sticks gibts keinen nennenswerten Schreibcache (auch nicht wenn das Placebo "Für Geschwindigkeit optimieren" aktiviert ist). Hier geht das "einfach abziehen" daher meistens gut. Was als Restrisiko bleibt, ist ein zufällig, unmittelbar vor dem Abziehen zuschlagendes automatisches Speichern, z.B. eines geöffneten Word-Dokuments. Bei SSDs kommt als Risiko hinzu, dass diese gerade dabei sein könnten, intern Daten umzuschichten, z.B. vom schnellen SLC-Bereich in den langsamen MLC-Bereich.

Bei Nicht-SSDs reicht es auch, den 'Datenträger' im USB-Laufwerk über das Kontext-Menü des Windows-Explorers 'auszuwerfen' - was aber nur bei Wechseldatenträgern angeboten wird. Außerdem dürfen das unter XP standardmäßig nur Admins, was sich theoretisch per Richtlinie ändern läßt:
Systemsteuerung -> Verwaltung -> Lokale Sicherheitsrichtlinie
Lokale Richtlinien -> Sicherheitsoptionen
Geräte: Formatieren und Auswerfen von Wechselmedien zulassen
Oder diese REG-Datei runterladen und doppelklicken:
AllocateDASD_2.reg.
Bei früheren Tests hat das nicht geholfen, bei erneuten Tests auf XP-SP2 mit Patch-Stand April 2007 ging es aber...

Zum Abmelden gibt es einige Kommandozeilen-Tools, die das Geklicke zum sicheren Entfernen über das Symbol im Systray ersparen. Die haben aber alle gewisse Nachteile - deshalb habe ich selbst eines geschrieben: RemoveDrive

Zum Auswerfen dient mein EjectMedia. Es wirft nur ein Medium aus anstatt das ganze Gerät abzumelden. Das ist die geeignete Methode für Karten in Multislot-Cardreadern, insbesondere internen, die man ja nach dem Entfernen nicht ohne weiteres wiederbeleben kann.

USB-Laufwerk reaktivieren

Nach dem 'Vorbereiten zum Sicheren Entfernen' muß ein USB-Laufwerk zum Reaktivieren getrennt und wieder angeschlossen werden. Das kann mittels eine Resets des USB-Ports simuliert werden, das wird aber nur unter XP und wieder ab Windows 8 unterstützt und kann mit UsbTreeView gemacht werden.
Lösung: Man schalte einen USB-Hub vor das betreffende Gerät - den kann man dann bei Bedarf in einem Rutsch mittels DEVCON deaktivieren und wieder aktiveren und schon werden alle daran angeschlossenen Geräte wieder zum Leben erweckt. Diese Geräte-ID zeigt mein ListUsbDrives nur wenn es mit -A (wie alle Infos) gestartet wird, (die 'Ctrl2 DevID').
Sehr praktisch sind dafür USB-Platten mit integriertem USB-Hub, da die Platte selbst an einem der Ports hängt.
Das Ganze funktioniert auch mit dem USB-Hostcontroller (dessen 'Root-Hub') - aber da hängen ja meist noch andere Geräte dran.

Beispiel:

devcon disable USB\VID_067B*PID_2517*
devcon enable USB\VID_067B*PID_2517*
Das Zeichen & hat auf der Kommandozeile eine besondere Funktion - deshalb ist es besser es durch ein * (Platzhalter für beliebige Zeichen) zu ersetzen.

Weitere Möglichkeit: Mein Tool RemoveDrive führt mit Administrator-Rechten gestartet das 'Sichere Entfernen' so durch, dass eine Reaktivierung mittels RestartSrDev möglich ist. Ab V2.0 kann RestartSrDev den Hub an den das betreffende Gerät angeschlossen ist neu starten, so wie oben mit DEVCON gezeigt.

 


  Meine Tools für USB-Sticks
 
Bei der Entwicklung von USBDLM sind ein paar Tools abgefallen - die haben inzwischen ihre eigene Seite bekommen: Laufwerks-Tools für Windows

 


  Ausrichtung der Daten ("Alignment")
 
SSD-Festplatten und fast alle USB-Sticks arbeiten mit Flash-Speicher. Dieser ist in Blöcken organisiert die je nach Quelle bis zu 512 KByte groß sind, tendenziell haben größere Datenträger wohl auch größere Blöcke. Um Flash-Speicher effizient zu beschreiben, sollten sich Zugriffe an diesen Blockgrößen orientieren. Im Auslieferungszustand von USB-Sticks wird das meist berücksichtigt, hier findet man oft eine ausgerichtete primäre Partition vor, die mit ebenso ausgerichtetem Datenbereich FAT32-formatiert ist. Die Ausrichtung der Partition im Auslieferungszustand liefert also einen Hinweis auf die Größe der Flash-Blöcke. Es gibt aber auch Minimalisten die die Partition nur so ausrichten wie die Clustergröße, da mehr nichts bringt - siehe unten.

Partitioniert oder formatiert man einen USB-Stick neu, sollte man das richtige Werkzeug nutzen. Gut geeignet sind hier Windows Vista und Windows 7/8: Sowohl beim Partitionieren als auch beim Formatieren bekommt man mindestens eine 64K-Ausrichtung, bei größeren Laufwerken eine 1M-Ausrichung oder mehr.
XP machts beim Partitionieren immer ungünstig und läßt Partitionen klassisch bei Spur- oder Zylindergrenzen beginnen - das ergibt meißt eine nicht ausgerichtete Partition, also ungünstig für Flash-Laufwerke sowie für Festplatten mit internen 4KB-Sektoren.
Beim FAT/FAT32-Formatieren richtet XP den ersten Cluster immerhin an 4K aus, Vista und Win7 je nach Laufwerksgröße an 64K oder mehr. Aber immer nur relativ zur Partition, ist die Partition nicht ausgerichtet, sind es auch die Cluster nicht. Hier hilft die SD Memory Card Formatting Software.

Bei NTFS liegen die Verwaltungstabellen irgendwo in der Mitte der Partition, bei FAT/FAT32 am Anfang. NTFS beginnt also mit Datenclustern (vorne sind ein oder mehrere für den Bootsektor reserviert) - da gibts innerhalb der Partition nichts auszurichten. Bei FAT beginnen die Datencluster hinter den meist zwei Dateizuordnungstabellen (den FATs) und einer variablen Anzahl reservierter Sektoren. Und genau über die Variation der Anzahl reservierter Sektoren (möglicherweise auch der Länge der FATs) wird hier die Ausrichtung der Datencluster erreicht.
Bei exFAT ist es ähnlich, hier steht netter weise gleich im Bootsektor wo die Datencluster beginnen.

Ich habe in UsbDriveInfo die Anzeige der Partitions- und Clusterausrichung eingebaut. Wie oben dargelegt, gibts nicht immer etwas anzuzeigen, so beginnt bei Superfloppys die "Partition" bei Sektor 0, da gibts nichts auszurichten, ebenso bei der Cluster-Ausrichtung wenn das Dateisystem NTFS ist.

Mit Clustergrößen kleiner als der Blockgröße des Flashspeichers sind die Dateien nur mit einer gewissen Warscheinlichkeit perfekt ausgerichtet, ist die Clustergröße z.B. halb so groß wie die Flashblöcke, beginnt jede zweite Datei optimal, mit einem viertel nur jede vierte usw., sprich, Cluster ausgerichtet und so groß wie die Flash-Blöcke garantieren optimale Schreibgeschwindigkeit.
Größere Cluster vergrößern aber den Verschnitt, der vorhandene Platz wird schlechter ausgenutzt. Und mit NTFS gibts mit Clustergrößen über 4K keine Kompression mehr. Irgendwas ist immer...

TrueCrypt richtet ab V6.0 übrigens die Daten genau so aus wie der Container ausgerichtet ist: "the start of the data area will always be aligned with the start of a host-filesystem/physical sector"

Wie richtet man eine Partition aus?
Mit GParted kann Partitionen ohne Datenverlust durch hin- und herschieben ausrichten, bei USB-Sticks lohnt der Aufwand aber sicher nicht, also bessre Partition löschen und neu anlegen (alle Daten gehen verloren):
Bei Wechseldatenträgern mag die Windows Datenträgerverwaltung Partitionen weder anlegen noch löschen, unter Vista und Win7 gehts immerhin mit dem Kommandozeilen-Tool DISKPART.
Bei Wechseldatenträgen kann man auch auf eine Partitionstabelle verzichten und das ganze Laufwerk als "Partition" nutzen - das nennt man dann "Superfloppy". Hier liegt die "Partition" immer optimal direkt am Anfang des Laufwerks. Also Partition löschen, Laufwerk neu anschließen und formatieren.
Wenns eine Partition sein soll: Einfach löschen und neu anlegen.
Falls keine Partitionstabelle vorhanden ist, wird das ganze Laufwerk als Superfloppy eingebunden, dann kann man auch mit DISKPART keine Partition anlegen, da vermeintlich kein Platz sei. Hier hilft die SD Memory Card Formatting Software (nur für USB-Wechseldatenträger), die legt eine Partition mit ausgerichteten Clustern an. Bei Laufwerken kleiner 4GB sind aber nur die FAT-Cluster ausgerichtet, die Partition aber nicht. Solche Laufwerke dann also nicht mit NTFS formatieren!

Eine schöne und kostenlose Partitionier-Software für Windows ist der "Active@ Partition Manager". Standardmäßig nutzt er die klassische Ausrichtung an Spurgrenzen, bietet aber die Option für den genauen Partitions-Offset. Die angebotene Zahl erhöht man so, dass sie sich glatt durch 1024 teilen läßt und verringert die Größe entsprechend - so bekommt man eine 512K-Ausrichtung.
Die folgende Warnung plus Frage "Partition geometry is not aligned with disk track borders. Align on track borders?", beantworten wir mit "No", denn wir wissen was wir tun :-)
Gleich mit formatieren zu lassen, führte hier (FAT16) zu einer 1K Clusterausrichtung, nochmal mit XP formatiert (egal ob mit FORMAT oder über Dialog) ergab dann die erwartete 4K Ausrichtung. Das Formatieren also besser Windows überlassen.

Was bringts? Hängt vom Gerät ab... Bei einer alten 128MB SD-Karte war keinerlei Verbesserung der Schreibrate festzustellen, ein Corsair Voyager 16GB verbesserte mit ausgerichteten 64K-Clustern die Schreibrate großer Dateien von 6,5 auf über 15 MB/s.

 


  Automatische Aktionen beim Anstecken und Abziehen
 
Das Windows AutoRun bzw. AutoPlay ist geprägt von sinnfreiem Herumsuchen, dummen Fragen, Tendenz zu Eigenleben, Vergesslichkeit und Nichtfunktionieren...
Der Mechanismus der autorun.inf wurde mit jeder Windows-Version weiter eingeschränkt, seit Vista geht es selbst bei CD-ROMs nicht mehr ohne Nachfrage.
Also am besten abschalten und meinem USBDLM überlassen.
Abschalten geht am besten mit meinem Tool AutoRunSettings.

USBDLM kann zum einen die Zeile open= in der autorun.inf auf dem neu angeschlossenen Laufwerk bzw. neu eingelegten Medium ausführen. Zum anderen (ab Version 4) kann in der USBDLM-Konfiguration abhängig von vielen verschiedenen Kriterien ein AutoRun definiert werden.

Automatische Aktionen beim Anschließen eines USB-Laufwerks lassen sich natürlich auch mißbrauchen, um von ausgeliehen Sticks im Hintergrund alles interessante runterzukopieren. Also niemals USB-Sticks mit vertraulichen Daten an fremde Rechner anschließen, selbst wenn man danebensteht und zuschaut!

 


  USB-Laufwerk als Trojanisches Pferd
 
Einen gefundenen USB-Stick anzuschließen, um mal draufzuschauen - da kann wohl keiner widerstehen...
Bei einem normalen Stick passiert da erstmal nichts, weil seit XP die Zeile open= in der autorun.inf nicht mehr ausgeführt wird, zumindest nicht ohne Rückfrage oder wenn man das nicht mit zusätzlicher Software nachgerüstet hat.
Standardmäßig kommt Windows aber mit einem Auswahl-Dialog "Aktion wählen", und in diesen Dialog kann man per autorun.inf einfach weitere Einträge hinzufügen, die z.B. wie das Original "Im Explorer öffnen" aussehen, tatsächlich aber irgend etwas anderes machen.
Anders sieht es schon bei U3-Sticks aus: Die haben neben dem Daten-Bereich ein virtuelles CD-ROM-Laufwerk, eben weil XP für CD-ROMs o.g. Zeile open= ungefragt ausführt. Der Inhalt des virtuellen CD-ROM-Laufwerks kann man leicht gegen Schadsoftware austauschen!
Also beim Anschließen fremder Sticks immer schön die Umschalt-Taste (Shift) drücken, um AutoRun zu übergehen.
Am besten AutoRun ganz abschalten: AutoRunSettings
Microsofts TweakUI für XP taugt hier nichts: Es kann nur für den aktuellen Nutzer Einstellungen machen, weiß nichts von Festplatten und aktiviert ganz nebenbei AutoRun für Netzlaufwerke.

BadUSB

In USB-Sticks sind heute flexible Controller-Chips verbaut, die mehr können als nur als USB-Massenspeicher zu agieren. Für den Phison 2251-03 wurden alle nötigen Werkzeuge veröffentlicht, so dass jeder aus einem damit bestückten USB-Stick ein BadUSB-Gerät machen kann.
Wie funktionierts?
Der USB-Stick meldet sich als USB-Verbundgerät das zu einen den üblichen USB-Massenspeicher enthält und zu anderen eine Tastatur. Beides wird seit Windows 2000 mit Standardtreibern ohne Rückfrage eingebunden. Die simulierte USB-Tastatur spult dann blind Tastendrücke ab, typischerweise wird Win+R gedrückt um den Ausführen-Dialog zu öffnen, einen Moment zu warten bis der Dialog warscheinlich bereit ist (eine Rückmeldung gibts in Richtung Tastatur nicht) und hier irgendwas Böses zu starten.
Alltagstaugliche Gegenmaßnahmen:

  • Beim Anschließen von USB-Sticks z.B. die Alt-Taste oder die Umschalttaste (Shift) gedrückt halten - das blockiert Win+R
  • USBDLM installieren und BadUsbWatchKbd=1 setzen -> USBDLM fragt beim Anschließen einer USB-Tastatur, ob dieser aktivert werden soll
Sonstige Gegenmaßnahmen Windows XP:
  • usb.inf löschen/umbenennen -> Es werden keine neuen USB-Hubs und Verbundgeräte eingebunden
  • keyboard.inf löschen/umbenennen -> Es werden keine neuen Tastaturen eingebunden
Sonstige Gegenmaßnahmen Windows Vista/7,8,10:

 


  USB-Stick unter DOS, Windows 95, 98 und NT4
 
Für MS-DOS gibts jede Menge USB-Tools: USB DOS-Treiber
USB DOS Ressources
Und die USB driver disk

Für Windows 98 wurden bei den meisten Sticks Treiber mitgeliefert (manchmal eine Mini-CD, die gerne übersehen wird oder nur als Download beim Hersteller). Ist das beim eigenen Stick nicht der Fall, kann man versuchen, einen fremden Treiber zur Mitarbeit zu überreden:
http://www.techwriter.de/beispiel/usb-mem2.htm

Inzwischen gibts für Windows 98 einen universellen Treiber für USB-Laufwerke, siehe http://www.technical-assistance.co.uk/kb/usbmsd98.php
Hier finden Treiber-Dateien aus Windows 2000 Verwendung, um lizenztechnisch auf der sicheren Seite zu sein, sollte man für den Einsatz daher über eine Windows 2000 Lizenz verfügen.
Und wer das Abenteuer unter Windows 95 wagen will, wird hier fündig:
http://toastytech.com/files/cruzerwin95.html

Bei Windows NT4 war die USB-Unterstützung für das SP7 geplant - aber das wurde ja nie fertiggestellt, weil die Nutzer es nicht wollten: Microsoft has concluded that Windows NT 4.0 SP7 is not needed. Andere Hersteller helfen hier aus:

  • USB-Treiber von Inside Out Networks für Dell Latitude Laptop
    Den Treiber hatte ich jahrelang im Einsatz - er funktioniert bestens. Allerdings gibt es keinen Schreib- oder Lese-Cache, auch mit NTFS nicht. Außderdem muß der Stick direkt angeschlossen werden, da Hubs nicht unterstützt werden. Mit einem Treiber-Paket von Inside Out Networks soll sich das beheben lassen (Link geht nicht mehr): ip4n4260.exe
  • Von Digi Internations gibts noch ein Treiber-Paket für eine USB-Kamera, das einen Treiber für USB-Massenspeicher enthalten soll - ich hab's nicht probiert.
    http://ftp1.digi.com/support/driver/i4usb403.exe
  • Aus China kommt noch ein USB-Treiber für NT4, der sogar USB 2.0 Highspeed kann. Ich hab's kurz probiert: Als LW-Buchstabe wird immer Z: vergeben, obwohl das eigentlich behoben sein soll. Schreib- und Lese-Cache sind aktiv - also immer schön o.g. Hinweise zum Abziehen beachten!
    Auf einem NForce2 friert mir das ganze gelegentlich ein. An mehreren anderen Rechnern mit USB 1.1 hatte ich keine Probleme: Woodhead's Home
  • Und noch eine Seite: Windows NT 4.0 and USB

 


  USB-Laufwerk verschlüsseln
 
Alle Verschlüsselungs-Lösungen die über ein verschlüsseltes Laufwerk arbeiten haben eines gemein: Es werden Admin-Rechte benötigt, zumindest einmalig zum Installieren der Software. Somit hat man an Fremdrechnern immer schlechte Karten.
Will ein Gast am eigenen Rechner seine Krypto-Software starten, muß man Ihm und seiner Kompetenz bzgl. Computern vorbehaltlos vertrauen und dessen Software mit Admin-Rechnen ausführen lassen. Das ist aber ganz und gar keine gute Idee, da man keinerlei Kontrolle darüber hat, was da für Software ausgeführt wird. Der eigene Rechner ist dann schlicht und ergreifent kompromittiert - nicht mehr vertrauenswürdig.
Da nützt auch eine Antiviren-Software nichts - die Fremdsoftware wurde schließlich mit Admin-Rechten ausgeführt und hat damit auch das Recht, die Antiviren-Software zu deaktiviern bzw. beste Vorraussetzungen, sie auszutricksen. Und der Admin wird alle Warnungen wegklicken - die Software soll ja funktionieren...

NTFS-Verschlüsselung ist auch keine Hilfe - wer will schon mit Zertifikaten hantieren die nicht mal zwischen Windows 2000 und XP kompatibel sind.

Was bleibt, ist die bewährte Open-Source-Software TrueCrypt V7.1a: http://www.heise.de/download/truecrypt.html
Leider hatten die Entwickler der Software keine Lust mehr, die Software weiter zu pflegen und haben sie im Mai 2014 kurzerhand für potentiell unsicher erklärt, weil sie Fehler enthalten könnte. Ein zur selben Zeit laufendens externes Review der Quelltexte hat aber keine nennenswerten Problem zu Tage gefördert, der letzten funktionsfähigen Version 7.1a kann somit weiter vertraut werden.
Auch hier sind Admin-Rechte nötig - aber nur einmalig zur Installation.

Der Umgang mit TrueCrypt ist Thema zahlloser Seiten im Internet - einfach mal TrueCrypt in die Suchmachine der Wahl eingeben...

Vollautomatisches Mounten von TrueCrypt-Volumes beim Anschließen eine Laufwerks läßt sich übrigens leicht mit meinem USB Drive Letter Manager bewerkstelligen.

 


  Links
 
Ein Potpourri an Infos

USB-Stick FAQ

Booten von USB-Sticks

'USB 2.0 oder nicht' und 'FAT32 auf USB-Stick' (c't)

Booten von USB (englisch, viele Links zu DOS-Treibern)

Fixing Windows 2000/XP Drive Letters - interessante Hintergrund-Infos zu Laufwerksbuchstaben unter Windows 2000/XP

Letter Assigner für Windows 95/98/ME - Laufwerksbuchstaben unter Windows 9x/ME bequem anpassen

 


Counter seit Feb. 1998

letzte inhaltliche Änderung: 11.03.2015

Uwe Sieber

Zurück