本来あってはならないことですが、誤って重要なファイルを削除してしまうということは
誰しもが経験していることかと思います。
そこで今回は、オープンソースのファイル復元ツール「PhotoRec」をご紹介したいと思います。


( 2008/11/25 )

PhotoRecとは
PhotoRecは、ファイルデータ復元ツールで、GNU Public Licenseで提供されています。
パーティション復元ツールであるTestDisk(こちらは機会があればご紹介したいと思います)に同梱されています。
・OSもWindowsだけでなく、LinuxやMac OS Xなど様々なOSに対応しています。
・復元対象のメディアもハードディスクやCDRomを始め、メモリスティックやUSBメモリなど多岐に渡っています。
・2008年11月20日現在の最新であるバージョン6.10では、180以上のファイル拡張子に対応しているため、
 業務、プライベート関わらず有用なツールかと思います。


インストール
ここではLinuxへのソースからのインストール手順について記述します。
こちらからソースを任意のディレクトリに展開します。


# cd /usr/local/src/testdisk-6.10
# ./configure
# make
# make install



利用
PhotoRecを起動します。

# photorec


復元対象ファイルを検索するメディアを選択します。


復元対象パーティションを選択します。


メニューが表示されます。

[ Search ] :選択したディスクに対して復元を行います。
[Options ] :オプション設定を変更します。
[File Opt] :検索対象のファイルタイプを設定します。
[Geometry] :Expert modeを指定した場合のみ設定可能です。
[ Quit ] :PhotoRecを終了します。


オプション設定

以下の復元オプション設定ができます。
PranoidYes (Brute force disabled):復元ファイルを検証し、破損している場合復元しません。
Yes (Brute force enabled):復元ファイルを検証、修正します。
No:検証を行わず、全て復元します。
Allow partial last cylinderシリンダをまたがるファイルの存在許可を設定します。
Keep corrupted files破損ファイルも復元するかどうか設定します。
Expert mode[Geometry]メニューが使用可能になります。ディスクジオメトリ(ディスクのシリンダ、ヘッダ、トラックあたりのセクタ数)の設定が行えます。
Low memoryメモリが不足する、復元中にクラッシュする場合指定します。よほどのことがない限り設定の必要はありません。



ファイルタイプ設定

復元対象のファイル拡張子を選択します。


ディスクジオメトリ設定

[ Cylinders ] :シリンダ数を設定します。
[ Heads ] :ヘッド数を設定します。
[ Sectors ] :トラックごとのセクタ数を設定します。
[Sector Size] :セクタのサイズを設定します。
[ Ok ] :設定を完了し、メニューに戻ります。

復元実行
メニューで選択したディスクに対して検索、復元を実行します。


選択したディスクのファイルシステムを選択します。


検索対象を全パーティション、あるいは未割当の領域から選択します。


復元ファイルの保存先を選択します。


復元が開始されます。


使用してみて
復元対象ファイルが多岐に渡っており、復元精度も高いと感じました。
ただ復元対象の指定が拡張子のみのため、ファイルを特定しての復元が行えず、そのため復元されるファイルの数は膨大になります(特にテキストファイル)。
またファイル名も復元されないため、復元されたファイルの中から目的のものを探す作業が大変でした。
とはいえ、オープンソースとして無料で使用できることを考えると、この手間は許容できる範囲ではないかと思います。