削除したファイルの復元
間違ってサーバのデータをほとんど消してしまいました。
ファイル整理中にhomeフォルダが汚いなと思ってrmしていったら、間違えて削除。
データはまぁ後からまた集められるのでいいのですが、開発中のコードがなくなったのが痛くて。
で、なんとか復元する方法がないかなと。ファイルシステムがext2はよく見つかるのですが、僕のファイルシステムはext4。もう無理かなぁ思っていたらext4の場合もありました。
extundelete - 削除したファイルを復元
削除したファイルが本当に消えてしまわないよう、まずは対象パーティションを読み込み専用にしてください。
僕の場合Ubuntuの64bitでしたので、先ほどのページのリポジトリ→Ubuntu_11.04/extundelete_0.2.0-0~ppa3_amd64.debを選択します。
次に自分のファイルを削除してしまった自分のパーティションを確認します。
$ df -hT
で一覧が見えるので、それを見て確認します。仮に/dev/sda1とします。
あとはいくつかのオプションを入れて実行します。以下その例です。
◆可能な限り復元する
$ sudo extundelete --restore-all /dev/sda1
◆削除されてから一時間以内のファイルのみ
$ sudo extundelete --restore-all --after $(date +%s -d '1 hour ago') /dev/sda1
◆特定のファイル、特定のディレクトリ
$ sudo extundelete --restore-file user/an/important/file /dev/sda1
$ sudo extundelete --restore-directory user/an/important /dev/sda1
実行すると
Restored inode~復元しているファイル名
といった情報がターミナルにどんどん流れていくと思います。これがFailed~だとそのファイルは復元できずに終わってます。
復元されたファイルは「RECOVERED_FILES」に作成されます。
こちら↓のサイトは一通りの流れが分かるので、参考にするとより適切に使えると思います。
Linuxでうっかりrm -rfしちゃったけど復活出来たよー\(^o^)/