破損メモリカードの復元

先日(といっても既に1ヶ月以上も前になってしまったが)台湾に行ったときの写真が、帰ってきてメモリカードを取り出してみたらひどいことになっていた。


仕方がないのでデータ復旧を試みることにした。


まず最初に試してみたのが、LexerのSDカードを買ったときに付いてきた(買ったときにSDカードの中に格納されている)データ復元ソフト『Image Rescue』。
早速インストールしてみて、カード内をフルスキャンしてみると、JPGファイルを63個ほど復元できた。難点がいくつか。

  • JPGファイルしか復元されなかった(MOVファイルもあったはず)
  • JPGファイルの末尾にゴミバイナリが付く。…これはクラスタ単位でファイルの切り出しが行われていることが理由と思われる。ファイルサイズはすべて16,384バイト(=32セクタ=1クラスタ)の倍数になっていた
  • ファイル名は復元されない
  • タイムスタンプは復元されない

まあ画像データだけ救えれば、という人には最低限の機能かもしれない。


これじゃとてもじゃないが不満足なので仕方なく自力で復元を試みることにした。
手順としてはこうだ。
(1)カード内の全データを吸い出す
(2)バイナリエディタを使って手作業で抜き出し!
至極簡単だ。



(1)カード内の全データを吸い出す

Linuxとかだとddコマンドのお世話になるような場面なのだろうが、残念ながらWindowsには標準でそういったコマンドが用意されていない。


幸いなことになぜか自作の吸出しツールがあるのでこれを使うことにする。
(昔仕事で必要になってちょろっと作ったやつ)

...

こうして508,686KBの巨大ファイルが出来上がる。(元は512MBのSDカード)


(続く...かもしれない)