lochkartenstanzer
Goto Top

Trim oder factory-Reset für USB-Flash?

USB-Flash hat auch die Eigenheit, immer langsamer zu werden, je mehr Daten drauf landen. Bei SSDs gibt es den Trim-Befehl um einzelne Blöcke wieder als "frei" zu markieren oder ein Hersteller-Tool, um die gesammte Platte zu löschen und damit den Flash-Speicher wieder "schnell" zu bekommen.

Moin,

Wie im Vorwort gesagt, habe SSDs und USB-Flashspeicher die Eigenheit, immer langsamer zu werden, je voller sie sind. Bei der SSD hat man dies ja mit einem reservierten Bereich, dem Trim-befehl und ggf. einen Herstellertool gelöst, um beschriebenen Speicher als "frei" zu markieren und damit die Geschwindigkeit wieder zu steigern.

Nun ist es USB-Sticks zwar ähnlich, aber im Gegensatz zu den SSDs hat man hier meines Wissens deutlich weniger Reservespeicher (wenn überhaupt) und auch keinen Trim-Befehl zur Verfügung.

Nachdem ich wegen schlechter Erfahrungen grundsätzlich alle Sticks, die bei mir zum Einsatz kommen erstmal per badblocks o.ä. einmal "vollschreiben" lasse, habe ich natürlich das Problem, daß der Flash-Controller denkt, der Stick ist voll, was sich bei manchen Sticks so auswirkt, daß das Schreiben extrem langsam wird.

Meine Frage daher an euch Kollegen: Ist euch ein Tool bekannt, mit dem man dem Flashcontroller sagen könnte, "alles wieder frei"?

lks


Nachtrag:

Nur damit es klar ist: Es geht nicht darum, einen USB-Stick zu formattieren oder Daten da drauf zu löschen. Es geht um die Auswirkungen des wear-leveling.

Die Daten auf dem Stick zu löschen ist trivial.

Unter windows einafach in Diskpart die Befehle clean, create und format mit den richtigen Parametern aufrufen, unter unixoiden Betribssystemen sind es "dd", "parted" und "mkfs".

Content-Key: 203974

Url: https://administrator.de/contentid/203974

Printed on: April 19, 2024 at 04:04 o'clock

Member: colinardo
colinardo Mar 26, 2013 updated at 11:28:51 (UTC)
Goto Top
Hilft bei Dir neu partitionieren nicht, oder müssen Daten auf dem Stick erhalten bleiben?: http://www.pendrivelinux.com/restoring-your-usb-key-partition/
Grüße Uwe
Member: Lochkartenstanzer
Lochkartenstanzer Mar 26, 2013 updated at 12:28:16 (UTC)
Goto Top
Moin,

es geht ncht einfach darum, die den USB neu zu partitionieren oder alle Daten zu löschen. Da reicht ein einfaches clean in diskpart oder ein dd if=/dev/zero of=/dev/stick. Es geht darum, dem Flashcontroller zu sagen, alle Daten oder Teile der Daten "gelöscht" sind, so daß dieser die Zellen schon auf Vorrat löschen kann, um sie beim beschreiben zur Verfügung zu haben und damit das Schreiben schneller geht. Ansonsten müssen im Flash-Speicher die zellen erst gelöscht werden, bevor sie beschrieben werden, was zeit kostet und die Transferraten deutlich herunterdrückt.

Bei SSDs gibt es dazu den Trim-Befehl oder ein Herstellertool, daß gleich die ganze Platte "löscht". Bei USB-Sticks ist mir dergleichen nicht bekannt (und google habe ich offensichtlch die falschen Fragen gestellt). es wäre nun ganz praktisch, wenn es sowas auch für Sticks gäbe, damit ich die nach dem "Prüfen" wieder "schnell" machen kann.

lks
Member: colinardo
colinardo Mar 26, 2013 updated at 13:29:43 (UTC)
Goto Top
In USB-Sticks ist der Trim-Befehl in den meisten Fällen nicht implementiert. Hier ist das Wear-Leveling in die Controller-Firmware integriert d.h. hier kann eigentlich nur der Hersteller ein Tool bereitstellen das alle Blöcke löscht. Denke das die Sticks immer nur eine begrenzte Anzahl an freien Blöcken vorhalten so dass es beim Übertragen von größeren Dateien auf den Stick zu Performance-Einbrüchen kommt weil nicht genügend gelöschte Blöcke vorhanden sind.
Ein universelles Tool gibt ist meines Erachtens nicht.

Grüße Uwe
Member: colinardo
colinardo Mar 26, 2013 updated at 13:17:38 (UTC)
Goto Top
Das Tool behauptet auch Flash-Datenträger "Low-Level" formatieren zu können:
http://hddguru.com/software/HDD-LLF-Low-Level-Format-Tool/
Ob das die Blöcke wirklich löscht oder nur alles mit nullen überschreibt ist eine andere Frage.
-edit- habe mal eine Anfrage diesbezüglich an den Programmierer gestellt. Melde mich bei Rückmeldung.
Member: Lochkartenstanzer
Lochkartenstanzer Mar 26, 2013 at 14:06:24 (UTC)
Goto Top
Danke

Dein Kommentar muss mindestens 10 Zeichen lang sein. Bitte wiederhole Deine Eingabe!
Member: Lochkartenstanzer
Lochkartenstanzer Mar 26, 2013 at 14:07:14 (UTC)
Goto Top
Zitat von @colinardo:
In USB-Sticks ist der Trim-Befehl in den meisten Fällen nicht implementiert. Hier ist das Wear-Leveling in die
Controller-Firmware integriert d.h. hier kann eigentlich nur der Hersteller ein Tool bereitstellen das alle Blöcke
löscht.

Genau das ist mein Problem. Mir ist nämlich bisher kein hersteller bekannt, der so etwas anbieten würde.

lks
Mitglied: 108012
108012 Mar 26, 2013 at 16:52:17 (UTC)
Goto Top
Hallo,

- USB Stick kaufen
- USB Stick formatieren
- USB benutzen oder "befüllen"

Wenn nun der USB Stick an einem Computer angeschlossen ist, nehmen wie mal an, an einem MS Windows PC,
dann kann man die Daten löschen und um genau diese Bereiche auch wieder als frei zu markieren musst Du nur
folgendes tun:

- Daten löschen (in den Papierkorb von Windows!)
- Dann den Papierkorb lehren (der USB Stick muss dann aber noch zwingend "an gestöpselt" sein!)

Jetzt werden die Daten aus dem Papierkorb gelöscht und auf allen am PC angeschlossenen Geräte wird
der frei gewordene Platz als wieder beschreibbar gekennzeichnet, fertig!

Nachteil man sollte einen Windows PC haben!

Ist zwar schon uralt der Trick aber bei mir funktioniert das immer noch auch mit den neueren USB 3.0 Sticks.

Gruß
Dobby
Member: Lochkartenstanzer
Lochkartenstanzer Mar 26, 2013 updated at 16:59:57 (UTC)
Goto Top
Zitat von @108012:
Jetzt werden die Daten aus dem Papierkorb gelöscht und auf allen am PC angeschlossenen Geräte wird
der frei gewordene Platz als wieder beschreibbar gekennzeichnet, fertig!

Lieber Dobby, das geht am Thema ganz vorbei. Und Du solltest mich inzwischen gut genug kenne, daß ich wegen solchem Popelkram keine Frage aufmache.


lks
Mitglied: 108012
108012 Mar 26, 2013 at 17:03:21 (UTC)
Goto Top
Ist euch ein Tool bekannt, mit dem man dem Flashcontroller sagen könnte, "alles wieder frei"?
Der Windows Papierkorb?
Member: C.R.S.
C.R.S. Mar 26, 2013 at 17:43:55 (UTC)
Goto Top
Hallo lks,

das ist ex-post bei den mir bekannten Sticks nicht zu ändern.

Über die Betriebsdauer gesehen kann man aber das Problem mit einem Filter-Treiber-Ansatz umgehen. Kommerziell verfügbar kenne ich nur diese Lösung, die ich aber nicht getestet habe und von der ich auch nicht weiß, wie sie sich im System darstellt: http://www.usb-supercharger.com/index.htm

Für den Alltagsgebrauch wäre mir das auf den ersten Blick zu viel "Overhead".

Grüße
Richard
Member: Lochkartenstanzer
Lochkartenstanzer Mar 26, 2013 at 18:17:06 (UTC)
Goto Top
Moin

die zufälligen Schreibzugriffe sind nicht das Problem. Die löse ich dadurch, daß ich meine Sticks, die die Aufgaben der früheren Disketten- oder CD/DVD-Stapel für den Support übernommen haben, meist mit vorgefertigten Images per dd beschreibe, d.h. en block.

Ich habe festgestellt halt festgestellt, daß bei manchen Sticks die Schreibgeschwindigkeit nach dem ersten vollschreiben dramatisch sinkt, teilweise unter 1MB/s, was bei heutigen Stickgrößen (16GB und mehr) zu ewig langen Wartezeiten führt, wenn man da ein neues Image aufspielen will (mehrere Stunden).

Da wäre es ganz praktisch gewesen, wenn man wie bei SSDs ein Tool gehabt hätte, um den Controller-Chip zu sage, daß er alles als "frei" betrachten kann.

Zumindest die USB3.0-Sticks, die ich bisher in den Fingern hatte, scheinen solche Effekte noch nicht zu zeigen. Vielleicht löst sich das Problem ja irgendwann automatisch.

lks

PS: Das obige tool scheint nur ein filter-treiber zu sein, der die Schreibzugriffe geschickt cached und umsortiert. Wäre aber für meinen Anwendungsfall (von Stick booten oder unter verschiedenen OS einsetzen) keine Lösung.
Member: C.R.S.
C.R.S. Mar 26, 2013 at 19:28:08 (UTC)
Goto Top
Zitat von @Lochkartenstanzer:
die zufälligen Schreibzugriffe sind nicht das Problem. Die löse ich dadurch, daß ich meine Sticks, die die
Aufgaben der früheren Disketten- oder CD/DVD-Stapel für den Support übernommen haben, meist mit vorgefertigten
Images per dd beschreibe, d.h. en block.

Ok, das ist grundsätzlich was anderes. Allerdings wenn Du das unter Windows mit aktiver Quick-Removal-Policy machst, schreibst Du aus Sicht des Gerätes immer überwiegend "zufällig", nur eben systematisch.
So stark kenne ich den Effekt nun nicht. Bei meinen ältesten Sticks, Sandisk Cruzer Micro, macht das einen Unterschied von 160MB/min auf 175MB/min. Ich denke auch, die waren nie schneller.