星期五, 9月 04, 2015

使用extundelete (CENTOS 6) 救回EXT3誤刪的檔案

雖然最後結果可能是因為已經被覆蓋沒有救援回來,但是還是筆記一下,日後或許能派上用場。
再次說明備份的重要性,資料最常在沒有備份的時候發生意外。

1.下載e2fsprogs,等下編譯會用到的元件
yum install  e2fsprogs-devel  e2fsprogs e2fsprogs-libs
 2.下載extundelete
wget http://downloads.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2?r=&ts=1441332731&use_mirror=nchc
 3.解壓縮並且安裝
bzip2 -d extundelete-0.2.4.tar.bz2
tar xvf extundelete-0.2.4.tar
cd  extundelete-0.2.4
./configure
make && make install
4.開始救回檔案
(1)救回某一特定位置的檔案
假設今天有一個/root/xxx.jpg 檔案被刪除
首先查看該檔案所在目錄的inode
ls -id /root/
393220     /root/
有了inode之後,我們接著來查看一下該位置所在硬碟分割區
df /home/pic/
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda6       10321208 5251064   4545856  54% /
接著來查看一下被刪除的檔案是否存在(建議先卸載該分割區在進行救援)
extundelete /dev/sda6 --inode 393220
File name                                   |Inode number | Deletestatus
.
..
xxx.jpg                                           393639         Deleted
有看到被刪除的檔案,開始進行救援
extundelete /dev/sda6 --resotre-file /root/xxx.jpg
救出來的檔案會被存放在目前位置的RECOVERD_FILES 資料夾內。

(2)救援整個分割區的資料
extundelete /dev/sda6  --restore-all
救出來的檔案一樣是存放在目前位置的RECOVERD_FILES 資料夾內。

最後還是要重申一下,備份的重要性,備份原則可以參考
世界備份日( World Backup Day):三二一原則

當然還有更細部的即時備份,版本控制跟保存期限....等需要去思考,當然這牽扯的範圍就比較廣跟比較大了。

Reference
How to recover deleted files with extundelete on RHEL6.1 Santiago
使用extundelete救回ext3、ext4檔案系統下誤刪的檔案
Linux ext3 系統下刪除檔案救回全記錄