まさかのファイル消失時にファイル復元を試みるツール「Magic Rescue」 2ページ

Magic Rescueの実行手順

 Magic Rescueのmanページを見ると、その使用前には「hdparm -d1 -c -u1 /dev/device 」というコマンドを実行して、メモリへの直接アクセスを可能にしておくことが推奨されている。このコマンドは絶対に必須という訳ではないが、実行しておくと処理完了までの所用時間を大幅に短縮させることができる。ただしMagic Rescueのパフォーマンス調整としては、コマンドパラメータ形式(後述)で検索設定を変更する方が扱いやすいかもしれない。

 Magic Rescueを実行するには、最低でも回収用ディレクトリとレシピを指定しておく必要がある。コマンド指定の基本形は以下のとおり。

magicrescue -d directory -r recipe device

 具体的には「magicrescue -d /mnt/external -r /usr/share/magicrescue/recipes/zip /dev/sda1のような指定になる。複数のファイルフォーマットを一括で検索させたい場合は、該当するレシピ群を収めたディレクトリを指定すればいい。

 実行結果の記録を残したければ- M i0オプションを指定しておくことで、処理された入力および出力ファイルをすべて確認できるようになる。

 -b blocksize パラメータをを指定すると、指定ブロックサイズの整数倍から始まるファイルだけに検索対象を制限させることができる。manページの説明では、通常のケースではブロックサイズを512としておけばいいとされている。

 16進数の扱いに慣れているユーザであれば、パーティション上の検索位置を-O = position というパラメータで直接指定することもでき、同じく検索開始位置の-O + position による後方移動および-O - position による前方移動も行える。この-Oパラメータが役立つのは、長時間に及ぶ検索をCtrl-Cで中断させた場合で、中断地点を別途控えておけば、後からO =を使用することで検索中断位置から処理を再開できるのである。

検索終了後の処理に役立つユーティリティ

 Magic Rescueの検索結果については、これらを処理する2つのサポート用ユーティリティが/usr/share/magicrescue/toolsに用意されている。例えば「dupemap delete,report resultdirectory 」というコマンドを実行すると、回収用ディレクトリにある重複ファイルを自動で削除させることができる。また最初に複数のディレクトリに「dupemap report -dfile 」を実施してファイルをデータベース化しておいてから、-dfile という指定でこのコマンドを実行すると、システム上にあるファイルを一括で削除できる。

 また「magicsort resultdirectory 」を実行すると、ファイルコマンドを使用して、ディレクトリ中の重複していないファイルだけを別ディレクトリに移動させることができる。