【Linux】削除したファイルを簡単に復元できるツールextundelete
間違ってrm -fr *などで意図しないディレクトリやファイルを削除してしまって困ったことはありませんか。
そんな時に簡単にファイルを復元してくれるツールextundeleteを使った復元手順の紹介です。
更新履歴
- 2021/8/23
- コード部分にシンタックスハイライターを適用
復元手順
ファイルシステムの確認
まずは削除したファイルがあったパーティションのファイルシステムとマウント先を確認しましょう。
dfコマンド等を使えば簡単に確認できます。
df -h
Filesystem Size Used Avail Use% Mounted on
udev 10M 0 10M 0% /dev
tmpfs 404M 5.6M 398M 2% /run
/dev/sda2 457G 130G 304G 30% /
tmpfs 1008M 0 1008M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1008M 0 1008M 0% /sys/fs/cgroup
/dev/sda1 94M 47M 42M 53% /boot
tmpfs 202M 0 202M 0% /run/user/1000
※自宅のサーバでdfコマンドを実行した例
※hオプションは容量などの数字を人間の読みやすい形式で表示してくれるオプション
Read Only化
削除ファイルがあった領域を破壊されないようにします。
対象を読み取り専用にして再マウントしましょう。
# root権限で実行
mount -o remount,ro /dev/xxxx
※必須の作業ではないですが、書き込みが発生して時間と共に復元できる確率が下がるのを止めることができます。
extundeleteのインストール
※来る時のために平時に予めインストールしておくことをオススメします。
パッケージのインストール
Debianならaptでインストールできます。
# root権限で実行
apt install extundelete
CentOSやAmazonLinuxのyumパッケージがあるかどうかは確認していません。
パッケージが無い場合はソースをコンパイルして入れて下さい。
※パッケージのインストール先がRead Only化した場所なら、当然インストールできません。
※Read Only化の前にインストールしてもいいですが、書き込みが発生すると当然復元確率は下がります。
※こういう事態になる前にextundeleteを入れておくことをオススメします。
ソースから手動インストール
まずはコンパイル用にファイルシステム関連ライブラリをインストールします。
(※パッケージのインストール時は先ほどのRead Only化に注意点)
# root権限で実行
# パッケージ名は要確認
apt install e2fslibs-dev
# yum系なら以下
# パッケージ名は要確認
yum -y e2fsprogs-devel
次にソースをダウンロードしてコンパイルしてインストールします。
wget http://downloads.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
tar jxf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4
./configure --prefix=/tmp/hoge
make
# root権限で実行
make install
–prefix=/tmp/hogeはインストール先の指定です。
この場合/tmp/hoge/bin/extundeleteに実行ファイルがあります。
ファイルの復元
以下のように指定してファイルを復元します。
# root権限で実行
# pathは適宜読み替え
/tmp/hoge/bin/extundelete --restore-all --after $(date +%s -d '1 hour ago') /dev/xxxx
カレントディレクトリのRECOVERED_FILESというディレクトリに削除されたファイルが復元されます。
※コマンド実行時のカレントディレクトリに注意して下さい。
この例では/dev/xxxxが復元対象のパーティションです。
対象の過去1時間に削除されたファイルを全て復元しています。
※–afterに1時間前のUnixタイムスタンプを与えています。