13. 一連のプロセスを自動化するツールはないですか?

あることはあります。ただ残念ながらそれらには、手動で i-node をいじる場合と 同じ問題があります。つまり、間接ブロックのデータを復旧できなないのです。 しかし前述したように、これは遠からず問題にならなくなるかもしれないので、 ここでそうしたプログラムをざっと眺めてみる価値はあります。

著者は、e2recover というツールを作成しました。これは Perl で書かれた、実質的には fsgrab のラッパーです。 間接ブロックのブロック番号がゼロにされてしまった場合でもファイルを取り扱える よう工夫をこらしてあり、フラグメンテーションさえなければ、非常によい 結果をもたらすと思います。また復旧したファイルのパーミッション (および可能 ならファイル所有者についても) を正しく設定し、復旧されたファイルが 元のファイルサイズと一致しているか否かも確認します。

e2recover は、来るべきこの文書の改訂版のために 作成されました。つまり今のところ、e2recover 用の詳しい解説は、この文書の次回の改訂の際に記載するめどしか立っていない ということです。ただ、それはそれとして、現状でも e2recover は役に立つはずです。ダウンロードする場合は 著者のウェブサイト をお使いください。近いうちに Metalab からもダウンロードできるようになる と思います。

Scott D. Heavner は、lde、すなわち the Linux Disk Editor の作者です。これは、バイナリディスクエディタであると同時に、 debugfs の代替ツールとして ext2 と minix ファイル システム、および xia ファイルシステムを扱うことができます (ただし 2.1.x や 2.2.x カーネルでは xia のサポートは打ち切られています)。 そして、ファイルの一連のブロックを辿ったり、ディスク情報を検索したり して、ファイルの復旧作業を手助けする機能も付いています。また、ファイル システムの基本的な概念を述べた良質の文書と、復旧の際のツールの使い方を 述べた分かり易い文書とが添付されています。lde の バージョン 2.4 は、Metalab やそのミラーサイト、および 作成者のウェブサイト から入手できます。

もうひとつの方法として、GNU Midnight Commander, mc が あります。これはフルスクリーンのファイル管理ツールであり、著者の知る限り、 'NC' と呼ばれていた MS-DOS プログラムがベースになっています。mc は、Linux コンソールや xterm 上でのマウス操作をサポートし、 さらに仮想ファイルシステムを提供することで、tar ファイル内にディレクトリ を移動するといったトリックも可能になっています。その仮想ファイルシステム の機能のひとつとして、ext2 でのファイルの復旧があります。使いやすさは 抜群です。ただ、実際のところ、著者自身は使ってはいません。古き良きのシェル コマンド方式のほうが好きだからです。

復旧機能を使うには、プログラムを --with-ext2undel オプションを付けて configure を実行する必要があります。また e2fsprogs に付属する開発用ライブラリとインクルードファイルも 必要になります。Debian GNU/Linux に同梱されている mc は、予めこのオプション付きで ビルドされています。他のディストリビューションでもおそらく同じだと 思われます。プログラムのビルドが済んだら、mccd undel:/dev/hda5 と命令して、削除ファイルの一覧を 見ることができます。今日の多くの復旧ツール同様、mc もゼロ埋めされた間接ブロックを上手く扱えません。一般に、大きなファイル の冒頭 12k だけしか復旧できないこともあります。

最新バージョンは、the Midnight Commander の ftp サイトからダウンロードできます。