Kennen Sie ASMI?

… und: wollen Sie die kennenlernen?

Die Firma heißt mit vollem Namen “Amphenol Shouh Min Industries” und baut Komponenten für SD-Karten.

Ich kenne niemanden in dieser Firma persönlich, ich bin mir nur relativ sicher, daß ich irgendjemandem in deren Entwicklungsabteilung die Ohren lang ziehen möchte.

Folgende Situation: Stellen wir uns mal vor, man leiht sich eine Semi-Profi-Kamera aus (Sony EX3) und filmt in HD auf diese schicken Speicherkarten der Firma Verbatim. (Marke wäre egal, ASMI liefert auch an SanDisk…).

Beim Kopieren der Dateien auf den Rechner stellen wir dann fest, daß das Dateisystem gebröselt ist. Nebenbei: es handelt sich um eine Theateraufführung, Takes nochmal aufnehmen ist also nicht, weil war nicht.

Einmal dosfsck später und wir haben zumindest aus der zweiten FAT die erste korrekt restauriert.

Problem: die Dateien enthalten u.U. keine Video-Daten, sondern Müll. D.h.: Tools wie PhotoRec sind etwas hilflos, weil ab einem undefinierbaren Zeitpunkt die Karte von sich aus beschließt, Quatschdaten rauszuliefern.

Um das Real-Life-Adventure “Kopieren von der Speicherkarte” noch etwas spannender zu gestalten, verabschieden sich bei weiteren Kopierversuchen durchaus mal Daten, die vorher noch da waren. (Komische Erwartungshaltung meinerseits, von einem Solid-State-Datenträger zu erwarten, daß er ein paar Lese(!)-Versuche auf der selben Stelle abkönnen sollte.)

Und: jetzt kommen wir wieder zum ursprünglichen Thema des Blogartikels, der Firma ASMI bzw. eines dort tätigen Entwicklers: die Karte liefert dann nur noch Sektoren mit dem Header “ASMI-SD” raus.

Bis man sie aus dem Slot nimmt und wieder hineinsteckt. Dann geht es wieder, manchmal für ein paar Megabytes, manchmal auch nicht.

Daher kenne ich jetzt die Firma ASMI – und weiß, ich mag dort jemanden nicht besonders… bzw. dessen Verständnis von sinnvoller Error-Recovery.

Zu meinem Glück hatten auch bei den Linux-Kernel-Entwicklern einige Leute schon Spaß mit spackenden USB-Komponenten. Es gibt nämlich einen trickreichen Weg (dank Alan Stern) unter Linux einen USB-Device-Reset auszulösen.

Jetzt muß ich zumindest nicht mehr Card-Jockey spielen und kann stolz dieses völlig gehirnamputierte Programm zum Wiederherstellen von ASMI-erkrankten SD-Karten präsentieren:

sd_card_recover.c

Update:

Offenbar schaffen es diese Speicherkarten auch noch, je nach Gusto in verschiedenen Sektoren Bitflips unterzubringen – die dann je nach Lesezyklus variieren.

Lösungsidee #1: zwei oder mehr Versionen parallel lesen, Bitflip-Positionen identifizieren, so lange permutieren, bis der ffmpeg-Stream-Reader irgendeinen Sinn erkennen kann.

Lösungsidee #2: (Fallback) zehnmal einlesen, Mehrheitsentscheid. (Wobei in diesem Zusammenhang demokratische Entscheidungen eindeutig ihre Grenzen finden können…)

Ach richtig: spontane Software-Empfehlung an der Stelle: vbindiff, vergleicht zwei Binärdateien beliebiger Größe visuell.

Hinterlasse eine Antwort