Karten- / USB-Flash-Speicher: Wie wird nach starkem Gebrauch getrimmt, verworfen oder zurückgesetzt?

4404
THX

Ich frage mich, ob es möglich ist, den Controller eines USB-Laufwerks oder einer Speicherkarte "zurückzusetzen", um unter Linux als "nicht verwendet" (Fedora 24) zu behandeln.

Hintergrund: Ich habe ein USB-Laufwerk von / dev / urandom überschrieben. Ich gehe also davon aus, dass auf alle Blöcke geschrieben wurde, da (soweit ich verstanden habe) die meisten USB-Laufwerks- und Speicherkartencontroller keine Ersatzblöcke enthalten. Das Laufwerk (wie kann man überprüfen, ob der Speichercontroller ATA-Trim unterstützt oder ob der USB-Controller den ATA-Trim an das Gerät weiterleitet?) Unterstützt kein Trim - fstrim gibt einen Fehler aus und hdparm sieht keine Trimmunterstützung, dh

hdparm -I /dev/sdX | grep -i TRIM 

Ist es generisch möglich, alle Blöcke auf einem USB-Flash-Speicher als einfach zu kennzeichnen und eine Speicherbereinigung für alle Zellen auszuführen? Oder ist es, wenn möglich, nur auf bestimmte Controller (USB sowie Speichercontroller) beschränkt?

Nachverfolgen

Nach dem Löschen einer SD-Karte wird welcher Wert von der Karte gelesen? Alle Bits löschen oder alle Bits gesetzt? Zumindest SD-Karten sollten einen CMD38 unterstützen, der als schnelles Format die Blöcke zurücksetzen würde.

Allerdings habe ich bisher nur eine offizielle Win / Mac-Software zum Senden dieses Befehls an ein Gerät gefunden. Https://www.sdcard.org/downloads/formatter_4/

Vermutlich (nicht versucht) hängt dies auch davon ab, ob der USB-Controller den Befehl durchlässt und möglicherweise nur auf SD-Karten funktioniert, aber nicht unbedingt auf USB-Laufwerken.

Bis jetzt habe ich kein Linux-Programm gefunden, um diesen CMD38- Befehl einfach an ein Gerät zu senden .

0
"Ist es generisch möglich" - nein. In der Tat könnte man sogar so weit gehen zu sagen, dass es generisch möglich ist. Ich bezweifle sehr, dass jeder USB / SD-Flash-Controller dazu in der Lage wäre. Sie sind viel weniger ausgereift als SSD-Controller. Leider kann ich jetzt nicht recherchieren. Daniel B vor 7 Jahren 0
Ja, ich habe den Formatierer der SD-Assoziation unter Windows ausprobiert. Ich habe es jedoch nicht geschafft, auf die Low-Level-Funktionen mehrerer SD-Karten über verschiedene USB-Lesegeräte zuzugreifen. Anscheinend geben die USB-Controller in den meisten Lesern die Befehle / Adresskarten nicht als andere Speichertypen als mmcblk an den PC weiter THX vor 7 Jahren 0

2 Antworten auf die Frage

0
Toby Speight

Sie benötigen fstrimim util-linuxPaket:

NAME

fstrim - verwerfen Sie nicht verwendete Blöcke auf einem eingehängten Dateisystem

ZUSAMMENFASSUNG

 fstrim [-a] [-o offset] [-l length] [-m minimum-size] [-v] mountpoint 

BESCHREIBUNG

fstrimwird auf einem gemounteten Dateisystem verwendet, um Blöcke zu verwerfen (oder zu "trimmen"), die nicht vom Dateisystem verwendet werden. Dies ist nützlich für Solid-State-Laufwerke (SSDs) und Thin Provisioning Storage.

Standardmäßig verwirft fstrim alle nicht verwendeten Blöcke im Dateisystem. Optionen können verwendet werden, um dieses Verhalten basierend auf dem Bereich oder der Größe zu ändern (siehe unten).

Das mountpointArgument ist der Pfadname des Verzeichnisses, in dem das Dateisystem eingehängt ist.

Wenn Sie fstrimhäufig laufen oder sogar verwenden mount -o discard, kann dies die Lebensdauer von SSD-Geräten mit schlechter Qualität beeinträchtigen. Für die meisten Desktop- und Serversysteme ist einmal pro Woche eine ausreichende Trimmfrequenz erforderlich. Beachten Sie, dass nicht alle Geräte eine Trimmung in der Warteschlange unterstützen, so dass jeder Trimmbefehl zu einer Leistungseinschränkung für alle anderen Komponenten führt, die die Festplatte derzeit verwenden möchten.

Dies hängt natürlich von der Fähigkeit des Laufwerks oder des Kartensteckplatzes ab, den TRIMBefehl zu akzeptieren . Günstige USB-Massenspeicher tendieren nicht dazu; neuere UAS (USB-Attatched SCSI) können normalerweise akzeptiert werden TRIM. Sie können anhand der hdparm -iOption "Unterstütztes Daten-Management-TRIM" unter der Überschrift "Befehle / Funktionen" feststellen, ob dies unterstützt wird .

Hallo, wie gesagt, wirft fstrim einen Fehler (ich habe das OS / Fedroa 24 hinzugefügt), da das Gerät keinen Trim unterstützt, dh `hdparm -I / dev / sdX | grep -i TRIM`. Ich würde davon ausgehen, dass die Trimm-Unterstützung vom Controller abhängt, dh, wenn der Speicher-Controller ATA-Trimm unterstützt, müsste der USB-Controller ihn auch durchlassen. THX vor 7 Jahren 0
0
user3188445

Der gewünschte Befehl ist blkdiscard . Es löscht eine gesamte Partition oder ein Block-Gerät durch Trimmen. Es funktioniert jedoch nur auf SD-Karten, nicht auf USB-Sticks, da letzteres meiner Meinung nach keine Trimmung unterstützt.

ach danke - das ist grundsätzlich das, wonach ich suche. Leider identifizieren sich alle meine Kartenleser (intern als extern) als Massenspeicher der einen oder anderen Art (dh als USB-Stick). Ich denke, mit einem direkt angeschlossenen Kartenleser sollte blkdiscard mein Werkzeug für SDs sein! THX vor 7 Jahren 0