web-dev-qa-db-ja.com

ddで作成されたSDカードの画像はすべてゼロです

コンピューターの文盲の家族が、カメラで使用したSDカードから写真を復元するように私に依頼しました。デバイスをフォーマットする必要があることを通知されたとき、彼女はコンピューターからそれらをフェッチしに行きました。彼女はフォーマットを進めなかったことを誓い、私がそれを修正する方法を知っているかどうか尋ねました。

Ddrescueやその他のツールがあらかじめバンドルされているので、気に入ったKnoppixブートCDを使用しています。カードを内蔵リーダーに差し込むと、/ dev/sdcの下にあるデバイスが認識されましたが、自動的にはマウントされませんでした。

コマンドを実行しました

ddrescue -d /dev/sdc /media/sdb1/test.img /media/sdb1/testimage.log

出力は、それが完全に正常に実行されたことを示唆しました。すべての16GBを正常に読み取り、0エラーを報告しました。 imgファイルを16進エディターで開いたとき、16GBのゼロでした。 ddrescueがすべての読み取り試行でサイレントに失敗し、ゼロを書き込んでいるかどうかはわかりませんでした。そのため、プレーンなVanilla ddも試したところ、同じ結果が得られました。

カードに関するすべてが問題ないように見えます、それは明らかにただ空です。通常、私はこれらのカードのメモリコントローラが悪くなり始め、メモリサイズを誤って報告したり、不良セクタがある場合に慣れていますが、ここではすべてが工場出荷時の新しいSDカードのように見えます。

もちろん、彼女は技術に精通していないので、誤ってゼロで埋めてしまったことを否定することはできませんが、誤ってすばやくフォーマットしてパーティションテーブルを吹き飛ばし、アドレスのバイトをそのままにしていたと思います。

ここで私が見逃している、または間違っている可能性があるものはありますか、それともカードは完全にホースで固定されていますか?

1
maple_shaft

Linuxシステムは動作中のSDカードを読み取ることができると思います。

「デバイスをフォーマットする必要がありました」は、フォーマットされていないカードを挿入したときに表示されるWindowsメッセージです。これには、100%ゼロ、つまり完全に空白のカードも含まれます。

データは失われます。

これは、SDカードのフラッシュ再マッピングテーブルがすべての未割り当てにリセットされた場合に表示されるものです。デバイス全体でLinuxblkdiscardコマンドを使用します。 (blkdiscardコマンドは内部PCIカードリーダーで機能する傾向がありますが、USBカードリーダーでは機能しない傾向があると思います)。

ランダムな推測が必要な場合は、コントローラーがまだ動作している障害である可能性が高いと思いますが、何らかの理由で再マッピングテーブルの読み込みに失敗しています。その場合、カードに書き込むことができなくなります/書き込みは黙って失われます。

SDカードで使用されているものについてはほとんど聞いたことがないので、意図的な破棄コマンドが原因だとは思いません。

SDカードがそれ自体をリセットし、すべてのマッピングテーブルを消去することにした場合、私は驚きます。フルデバイスのblkdiscardコマンドには、しばらく引用が必要です。少なくとも、自動的にリセットされるように設計する理由はありません。

2
sourcejedi