ともの技術メモコンテンツへスキップともの技術メモ趣味の電子工作などの記録。時にLinuxへ行ったり、ガジェットに浮気したりするので、なかなかまとまらない。tomonoSDカードから消えた写真を復活うちの嫁のAndroid機で撮影してあったMicroSDカード上の写真がすべて消失するという事件が起きました。LINEでありえない人(この人がLINEなんぞやるわけない・・・実際にアリバイの証人まで居たりする)からメッセージが届いた後、しばらくして消失に気づいた、という状況です。おかしい状況のような気がします。なんとなくバックドアとかルートキットの匂いがします。LINE自体が問題なのか、LINEを狙ったアプリをインストールしてしまっているのかはわかりませんが。<追伸>FATフォーマットなので、FATテーブルの書き込みに失敗しただけなのかもしれません。書き込み失敗でSDカード丸ごと初期化というのも不思議な気がしますが・・・。それはさておき、とにかく画像ファイルの救出を試みましたので、その記録です。1.イメージファイルの吸い出しなにはともあれ、現在の状態を保存します。この手の作業ではオリジナルには手を加えないのが鉄則です。of=/media/HDD/SDCARD.IMGとして、ディスクイメージを吸い出します。ここで、/dev/sdxはイメージファイル保存用のHDDのUSBハードディスク、/dev/sdyが救出対象となるSDカードです。Copy-Of-SDCARD.IMGとして、イメージファイルのコピーを作成します。このコピーに対して色々トライしていきます。/media/FATとして、/media/FATにイメージファイルをマウントして観察します。SDカード上のファイルが全消去されたか、論理フォーマットされてしまっているかのようにファイルが何もなくなっていました。SDカードはFATフォーマットなのでアクセス権が及ばないはず。SDカードへのアクセスを許可したアプリからは、おそらくどんなアプリからも全消去とか不正な参照・書き換えなどが可能なのではないかという気がします。3.ツールのインストール途中、試行錯誤と紆余曲折があったのですが、ここでは端折って、最終的な救出方法のみ記載します。SynapticでTestDiskを検索してインストールします。PhotoRecをこちらからダウンロードしました。PhotoRecにもTestDiskが同梱されているようですが、先にTestDiskはインストールしてしまっています。~/TEMPに移動し、イメージファイル(Copy-Of-SDCARD.IMG)も~/TEMPの下にコピーします。救出したファイルを保存するディレクトリを作成しておきます。Copy-Of-SDCARD.IMGとして起動します。下の方に「rootじゃないといくつかのディスクが見えないよ」という表示が出ますが、イメージファイルに対する操作なので問題ありません。そのまま「Proceed」を選択したまま「Enter」を押します。次にどのパーティションを対象にするか聞いてきますが、そのままで問題ありません。「Search」を選択したまま「Enter」を押します。次にファイルシステムを聞いてきますが、FATがすでに選択されているのでそのままで問題ありません。「Other」を選択したまま「Enter」を押します。次に消去されたファイルのみをサーチするのかどうか聞いてきますが、今回はSDカード内のファイルをすべてサルベージしたいので、「Whole」を選択して「Enter」を押します。次にサルベージしたファイルの保存先を聞いてくるので、適当な箇所を選んで「c」を押します。するとサルベージが始まります。(適当なサイズ毎にサブディレクトリが切られるようです)しばらくすると終了します。今回は4500個のファイルが救出されました。出来上がったファイルはファイル名がグチャグチャになっています。EXIF情報は生きている(というか生きてないとJPEGファイルとして成り立ちませんが・・・)ようですので、EXIFに基づいて撮影日時に基づいたファイル名に修正します。ファイル名が修正できれば、写真のグループ分けも容易になるはずです。f*.jpgとして、ファイル名を修正していきます。fで始まるファイル名は大きな写真のようですので、まず修正されたファイルを集めます。*.jpgとして残りのファイルのファイル名を修正してファイルを回収します。完全にはファイル名が修正できないので、適当に手作業を加えながら、画像回収を完了させました。コメントをキャンセルメールアドレスが公開されることはありません。date*日本語が含まれない投稿は無視されますのでご注意ください。