gabiは、PhotorecとForemostという2つの復旧プログラムを利用してすべてを復旧する。PhotorecやForemost自体ではなくext3undelを使用することの利点は、時間だ。つまり作業を自動化して設定作業などをなくすことによって、ファイルが新しいデータで上書きされてしまう可能性を小さくすることができる。gabiコマンドには、復旧したいパーティション、復旧したファイルを保存するパーティション、Photorecが対象とすべきファイルの種類(全種類でも可)を伝える必要がある。その後Photorecは、「シグネチャ」(ファイルがそのブロック内に存在したことの証明)を求めてハードディスクの空きブロックをスキャンする。ハードディスクが大容量の場合、この作業にはかなり長い時間がかかる。なおinodeのデータは復旧できないため、復旧したファイルは手動で選り分けて、目的のファイルを見つける必要がある。
一方ralfコマンドは、SleuthKitというフォレンジックソフトウェアを使用して、特定のファイルを復旧する。基本的な手順としては、ralfがSleuthKitを使用して目的のinodeを見つける。次にinodeに対応していたブロックのリストをファイルシステムが持っている情報をもとにして探し出す。最後に、SleuthKitがそれらをイメージとして保存し、(gabiの場合とは異なってハードディスク全体ではなく)それをPhotorecが処理する。その結果、目的のファイル以外のファイルも復旧されることもあり、その場合にはgabiの場合と同様に、復旧されたファイルの中から目的のファイルを選り分けて見つける必要がある。
今回、ext3undelラッパーをVMware上のアップデート版Ubuntu 8.04 Server Editionで使用してみた。異なる内容の3つのテキストファイルと一つのJPEG画像ファイルを作成して、それらをrmコマンドを使って削除したところ、どのファイルについても大した手間をかけずに、gabiを使ってもralfを使っても復旧することができた。とは言えまったく新しくインストールした環境で試したため、それほど多くのファイルを選り分ける必要はなかった(ちなみに仮想環境のイメージファイルを作成した人がリリース前にどのようなファイルを削除したのかを眺めるのは面白かった)。
ext3undelの最新版は開発者のウェブサイトからダウンロードすることができる。.tarファイルに加えて、構築済みの .debパッケージや .rpmパッケージとしても配布されている。また依存しているPhotorec、Sleuthkit、Foremostをインストールする必要もあるが、これらについてはほとんどのディストリビューションでそのリポジトリから入手可能だ。
ext3undelには、できるだけ効率良くデータを復旧させるための素晴らしいツールが揃っている。とは言えデータに関して言えば、削除した直後にext3undelを使用しても復旧できないこともあるため過信は禁物で、定期的なバックアップを行うことはやはり必要だ。例えば削除されたファイルがフラグメント化している場合、ext3undelには最初のフラグメントしか見つけることができない。また故障したハードディスクのデータを復旧することも不可能だ。とは言えext3undelは緊急時にはやはり素晴らしいツールであり、事故や失敗から受けるダメージを最低限に抑えることができる。
Kurt Edelbrockは技術記者/ブロガー/大学生。オープンソース関連の様々な出版物に執筆しつつ、大規模な公立大学の技術コンサルタントも務めている。
