今回は「SDカードのデータサルベージ術」について。オープンソースソフトウェア「PhotoRec」を使い、誤って初期化したディスク/消去してしまったファイルの復元に挑戦してみよう。
PhotoRecでできること
PhotoRecは、記憶装置から失われたファイルを復元するユーティリティ。マルチプラットフォームに対応、OS XやWindows、Linuxなど多様なOSで利用できる。復元対象とする記憶装置はHDDなど、システムに認識可能な(物理的破損のない)ディスクであれば基本的にOK。フラッシュメモリも対象に含まれるため、前回記した「Disk Utilytyで初期化してしまったSDカード」も利用できる。誤って初期化したディスクからファイルをサルベージする、誤って消去したファイルを復元することが、典型的な使い方だ。
基本的な動作方法は、よく知られたファイルヘッダを伝に(消えた)ファイルを探すというもの。PhotoRecが把握しているファイル種ごとの特定パターン(ファイルヘッダ)が検出され、そのデータ部分にフラグメンテーションが発生していない(データが連続している)状態であれば、ファイルとして復元できることがある。
対応するファイル形式は、こちらのリストにあるとおり。名前は「Photo Recovery」に由来しているが、写真にかぎらず、ZIPなどアーカイブのほか、GIFやPNGといった画像、オフィス文書など数百種におよぶ。拡張子だけでいえば、400種近い形式をカバーしている。
ファイルを復元する際、ファイルシステムは無視される。現行バージョン(v6.13)では、動作実績のあるものとしてFATとNTFS、exFAT、ext2/3/4、HFS+が挙げられているので、OS Xで扱うメモリカードのほとんどが問題なく扱えるはずだ。
PhotoRecでファイルをサルベージ
PhotoRecは、CUIベースのユーティリティ。だからOS Xの場合Terminalを使う必要があるが、作業は対話形式で進められるため、迷うことはない。基本的に、画面の指示に従いデフォルトの選択肢のまま進めればOKだ。とはいえ、英語でわかりにくい部分もあるため、本稿では手順を追う形で解説を進めたい。
1. 書庫の展開とPhotoRecの起動
まずは、PhotoRecのダウンロードページ(こちら)からOS Xの最新版を入手しよう。OS Xの場合PowerPCとIntelの2種類あるが、Mountain Lionならば当然Intel版。筆者は新しさからBeta版を選んだが、不安な場合は正式版を選ぼう。あとは、適当なフォルダに移り、以下の要領でコマンドを実行すれば、PhotoRecを起動できる。
$ tar zxf testdisk-6.14-WIP.mac_intel.tar.bz2
$ cd testdisk-6.14-WIP
$ ./photorec
2. ディスクの選択
最初に表示される画面では、システムに認識されたディスクを選択する。現在マウントされているディスクがシステムボリュームのみのとき、SDカードをセットしたとすれば、/dev/disk1として認識されているはず。それをカーソルキーで選び、returnキーを押そう。
3. パーティションの選択
次に、パーティションを選択する。今回は、誤ってHFS+で初期化してしまったSDカードが対象のため、ディスク全体(右端に「Whole Disk」と表示された行)を選択し、returnキーを押す。
4. ファイルシステムの選択
作業対象とするファイルシステムを選択する。今回は、以前デジタルカメラで利用したときの状態(exFAT)が対象のため、「other」を選択しreturnキーを押す。
5. 復元したファイルの保存場所を決める
次に、復元したファイルの保存場所を決める。初期設定では現在作業中の領域(カレントディレクトリ=「.」)が選択されている。支障なければ「c」をタイプする。
6. いざ復元開始、そして
これでSDカードの復元が開始される。あとはPhotoRecを信じて、作業完了を待つしかない。復元できるとはかぎらないが、初期化したばかりのディスク、削除したばかりのファイルは、かなりの確率でサルベージできることだろう。当然、ファイルを追記すれば、(以前は)連続していたデータが断片化してしまうため、それだけ復元の可能性は低くなる。誤って初期化/削除したことに気付いてからできるだけ早く作業に着手することが、復元を成功させるコツだ。