Wie kann ich eine Speicherkarte auf Leistung und schlechte Sektoren testen?


10

Ich habe gerade eine neue CF-Karte für meine DSLR gekauft. Ich habe es mit Xbench (Mac OS X) getestet und es funktioniert wie erwartet. Ich möchte jedoch einen "Oberflächenscan" (Begriff "beweglicher Plattenteller") durchführen, um nach "schlechten Sektoren" (Begriff "beweglicher Plattenteller") zu suchen. Ich könnte einen Prozess mit dd als Skript ausführen, aber ich habe das Gefühl, dass es einen besseren Ausweg gibt. Mein Ziel ist es, endgültig zu wissen, dass eine Speicherkarte (CF, SD usw.) sicher für ein Fotoshooting verwendet werden kann und nicht zurückgegeben werden muss, bevor das 30-Tage-Fenster für Lieferantenrichtlinien abläuft.

Ich möchte auf jeden Fall, dass hier Mac-Lösungen angeboten werden. Ich möchte auch ein paar Linux-Vorschläge bekommen. Lassen Sie uns den Windows-Benutzern sogar einen Knochen zuwerfen, damit diese eine Frage die Bedürfnisse aller erfüllen kann.


Ich verstehe, dass der Festkörperspeicher anders ist als das Drehen von Platten. Ich brauche keine Lektion darin. Was ich brauche, ist eine Möglichkeit, Geräte zu überprüfen, die ich besitze. Der Vorgang ist einfach: Füllen Sie das Gerät mit bekannten Inhalten. Lesen Sie vom Gerät und überprüfen Sie den Inhalt. Wenn beim Lesen oder Schreiben Fehler auftreten, liegt ein offensichtlicher Fehler vor. Wenn der Inhalt, den Sie lesen, von dem abweicht, den Sie geschrieben haben, ist dies der weniger offensichtliche Fehler. Das Datum sollte zufällig sein und es sollten mehrere Zyklen verwendet werden. Was ich brauche, ist ein Werkzeug, das es tut. Ich habe einen geschrieben, aber es ist ein Hack.
Bruno Bronosky

Antworten:


8

Da der Controller die Blöcke beliebig verschieben kann (siehe Verschleißnivellierung), besteht die einzige Möglichkeit für einen vollständigen Lese- / Schreibtest darin, die Festplatte zu füllen und dann zu vergleichen. Natürlich mehrmals mit unterschiedlichen Mustern.

Und trotzdem werden Sie keine fehlerhaften Regionen abfangen, da diese auch vom Controller verborgen werden, solange er Ersatzteile hat.


6

Der Flash-Speicher funktioniert nicht wie Festplatten mit Platten. Das Konzept eines "schlechten Sektors" existiert mit Flash-Speicher nicht wirklich. Heutzutage kümmert sich der integrierte Controller mit Flash-Speicher und SSDs darum, unbrauchbare Speicherblöcke zu identifizieren und zu markieren, Daten dynamisch zu verschieben, um Einschränkungen beim Schreiben von Blöcken zu verringern usw. Diese Funktionen sind bei SSDs weitaus häufiger anzutreffen, einige jedoch auch existieren in hochwertigen Flash-Karten (wie SanDisk).

Die meisten Tools zur Überprüfung des Dateisystems treffen entweder bestimmte Annahmen über die physische Struktur des Speichergeräts (z. B. platterbasiert, mit physischen Zylindern, Sektoren, Clustern usw.) oder arbeiten auf abstrahierter Ebene und führen Reparaturen "virtuell" mithilfe von Dateien oder Verzeichnissen durch Tabellen. Sie benötigen ein Tool, das speziell zum Markieren fehlerhafter Blöcke auf einem Flash-Speichergerät entwickelt wurde, da alles andere entweder mehr Probleme verursacht (vorausgesetzt, es kann die Probleme auf die gleiche Weise beheben wie bei einem platterbasierten Gerät) oder virtuell wird Korrekturen, die die dynamischen Funktionen von Flash auf Hardwareebene nicht berücksichtigen. Selbst wenn Sie einen bestimmten "Sektor" oder "Cluster" als "schlecht" markieren könnten, würde dies nicht unbedingt etwas Gutes bewirken, da diese physikalischen Konzepte im Flash-Speicher nicht vorhanden sind. Wenn das Flash-Gerät weiter fortgeschritten ist und Daten dynamisch verschiebt, um fehlerhafte Blöcke automatisch zu umgehen und Schreibbeschränkungen zu verringern, befindet sich der physische Speicherort der Daten möglicherweise einen Moment später in einem fehlerhaften Block und einen Moment später in einem guten Block. (Beachten Sie, dass die Idee eines "schlechten" Blocks im Flash-Speicher viel unschärfer ist als bei Plattentellern. Ein Flash-Speicherblock stirbt eher langsam als plötzlich ab und kann zwischen lesbar / nicht lesbar "flackern". A. etwas bevor es völlig unbrauchbar wird.)

Wenn es um Flash geht, lassen Sie das Gerät im Allgemeinen aus einer schlechten Blockperspektive selbst verwalten. Verschiedene Hersteller strukturieren und speichern Daten auf unterschiedliche Weise, und jeder kann unterschiedliche Ebenen und Mengen an dynamischem Verhalten aufweisen, mit denen Daten verschoben werden, um einige der Einschränkungen des Flash-Speichers zu vermeiden. Der Versuch, es selbst zu verwalten, verursacht wahrscheinlich mehr Probleme als es löst und kann Ihre Flash-Festplatten auf lange Sicht unbrauchbar machen.

Wenn Sie schlechte Karteikarten vermeiden möchten, empfehle ich die Verwendung seriöser Marken. Ich habe in der Vergangenheit eine Vielzahl von Flash-Karten ausprobiert, aber SanDisk ist die einzige Marke, die ich verwendet habe und die zumindest bisher nie versagt hat. Ich habe mehrere 4-, 8- und 16-Gig-SDHC-Karten, die ich ziemlich häufig benutze, und nehme sie regelmäßig aus meiner Kamera und stecke sie in meinen Laptop oder Computer. Sie funktionieren immer noch einwandfrei. (Einige sind mehrere Jahre alt.)


1
Bei jedem Blockgerät können fehlerhafte Blöcke vorhanden sein: Wenn ich Daten in einen bestimmten Block schreibe, diese aber nicht zurücklesen kann, ist dies ein fehlerhafter Block. Der Controller kann dieses Problem für Schreibvorgänge ausblenden, indem er die Daten an eine andere Stelle schreibt, jedoch nicht für Lesevorgänge.
Vaddadi Kartick

3

Unter Linux ist der gewünschte Befehl badblocks. Es scheint einen Port für Mac OS X als Teil dieses ext2-for-os-x-Ports zu geben - installieren Sie das Ganze und ignorieren Sie alles außer dem /usr/local/sbin/badblocksBefehl.

Das heißt, dies wird beim Testen helfen, aber ich denke nicht, dass es schlüssig sein wird, denn zuerst, wie Leonidas sagt, erhalten Sie keinen direkten Zugriff auf den Flash-Speicher, so dass es schwierig ist, einen vollständigen Scan durchzuführen, und auch deshalb Nach dem Test können neue Fehler auftreten, die möglicherweise sogar dadurch ausgelöst werden.


1

Wenn Sie Ihren Kommentar unter der Frage lesen , glaube ich, dass F3 genau das tut, was Sie wollen. Es wird unter Linux / Mac OS X kompiliert und ist auch über Homebrew verfügbar.


-1

Ich habe dies bei Google gefunden. Ich verwende keine SD-Karten für die Aufbewahrung von Kameras, sondern habe meine Klasse 10 32 GB SDHC-Sandisk nach weniger als 2 Jahren Verwendung auf meiner Samsung Galaxy S2 vollständig beschädigt.

Ich benutze Badblocks, um zu sehen, wo die ersten Badblocks beginnen, und dann werde ich, wenn möglich, Partitionen in diesem Bereich erstellen. Dies ist meine aktuelle, sehr, sehr schlechte Lösung: /


Könnten Sie Ihre Antwort näher erläutern? Basierend auf einer schnellen Suche denke ich, dass "Badblocks" ein Linux-Programm ist? Tut es, was das OP verlangt?
MikeW
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.