Contents
- UNIX
- Windows
- サーバ
- プログラミング言語
- データベース
- プロトコル
- サービス
- オープンソース
- 規格・技術
- アプリケーション
- PC
- DEVICE
- その他(未分類)
お問合せ: メールフォーム
コマンド | 説明 |
---|---|
extundelete | ext3 または ext4 パーテーションから削除されたファイルを復元するユーティリティ。パーテーションのジャーナル情報をもとに復元を試みる |
extundelete、神のツールです。
大事なファイルを誤って削除してしまった!しかもバックアップを取っていない。
しかし慌てないでください。
削除してしまったファイルをどうしても復元したい場合は extundelete で復元できる可能性があります。
Q : 本当に復元できるの? A : はい、まだ諦めないでください。
Q : 本当に本当? A : 本当に復元できます! 特に、現在進行形で有事のあなた、諦めるのはまだ早いです。 私は実際にこのエントリーの方法で有事から脱しました。
本エントリーは、extundelete のインストールとファイルを復元するまでの作業メモになります。
% cd /tmp % mkdir extundelete % cd extundelete % curl -L http://sourceforge.net/projects/extundelete/files/extundelete/0.2.4/extundelete-0.2.4.tar.bz2/download | tar xj % cd extundelete-0.2.4 % ./configure --prefix=/tmp/extundelete % make % sudo make install
Configuring extundelete 0.2.4 configure: error: in `/tmp/extundelete/extundelete-0.2.4': configure: error: C++ compiler cannot create executables See `config.log' for more details
% sudo yum install gcc-c++
Configuring extundelete 0.2.4 configure: error: Can't find ext2fs library
% sudo yum install e2fsprogs-devel
% sudo make install Configuring extundelete 0.2.4 Writing generated files to disk make -s all-recursive Making all in src Making install in src /usr/bin/install -c extundelete '/tmp/extundelete/bin'
インストールが完了したら、早速ファイルを復元します。
今回は、下記コマンドにて「1時間以内に削除されたファイルを復元」します。
% cd /tmp/extundelete % sudo /tmp/extundelete/bin/extundelete --restore-all --after $(date +%s -d '1 hour ago') /dev/xvda3
※ 「1 hour ago」の部分を変更すれば、3時間とか10時間なども指定できます。
ただし、時間の経過とともに、復元できる確率は下がっていきます。
Only show and process deleted entries if they are deleted on or after 1431325967 and before 9223372036854775807. NOTICE: Extended attributes are not restored. WARNING: EXT3_FEATURE_INCOMPAT_RECOVER is set. The partition should be unmounted to undelete any files without further data loss. If the partition is not currently mounted, this message indicates it was improperly unmounted, and you should run fsck before continuing. If you decide to continue, extundelete may overwrite some of the deleted files and make recovering those files impossible. You should unmount the file system and check it with fsck before using extundelete. Would you like to continue? (y/n)
復元したいファイルがあったパーティーションがアンマウントされていない場合、上記のような警告が出ます。
※ 今回、対象のパーティーション「/dev/xvda3」はマウントされたままの状態で extundelete を実行しました。
データロスなく復元したい場合は、アンマウントしてから extundelete を実行した方が良いようです。
なお、extundelete を実行した場合、サーバーに想定外の弊害が出るかもしれません。自己責任でお願いします。
今回私はアンマウントせずに extundelete を実行しましたが、目的のファイルを復元できました!
復元したファイルはコマンドを実行した作業ディレクトリと同じ階層に「RECOVERED_FILES」というディレクトリが作られ、この中に入っています。
今回の場合は、以下のパスになります。
/tmp/extundelete/RECOVERED_FILES
おまけ |
---|
コマンドのバイナリは以下のパスにあります。(今回の場合)
/tmp/extundelete/bin/extundelete
今後も extundelete を利用したい場合は、/usr/sbin や /usr/bin などにバイナリ自体を移動しておくと良いかもしれません。
あまりお世話になりたくないコマンドではありますが。
% sudo mv /tmp/extundelete/bin/extundelete /usr/sbin