extundelete是基于Linux的一個數(shù)據(jù)恢復(fù)工具,它通過分析文件系統(tǒng)的日志,解析出所有文件的inode信息,從而可以恢復(fù)Linux下主流的ext3,ext4文件系統(tǒng)下被誤刪除的文件。

1、我用的是Centos系統(tǒng),在安裝extundelete之前需要安裝e2fsprogs,e2fsprogs-libs,e2fsprogs-devel。
這里用:yum install e2fsprogs e2fsprogs-libs e2fsprogs-devel 來完成安裝。


2、編譯安裝extundelete:
tar xjf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4
./configure
make make install

3、extundelete的用法,可以通過help查看詳細(xì)!

4、extundelete恢復(fù)數(shù)據(jù)的過程:
在數(shù)據(jù)被誤刪除后,第一時間要做的就是卸載被刪除數(shù)據(jù)所在的分區(qū),如果是根分區(qū)的數(shù)據(jù)遭到誤刪,就需要將系統(tǒng)進(jìn)入單用戶模式,并且將根分區(qū)以只讀模式掛載。這樣做的原因很簡單,因為將文件刪除后,僅僅是將文件的inode節(jié)點中的扇區(qū)指針清零,實際文件還儲存在磁盤上,如果磁盤繼續(xù)以讀寫模式掛載,這些已刪除的文件的數(shù)據(jù)塊就可能被操作系統(tǒng)重新分配出去,在這些數(shù)據(jù)庫被新的數(shù)據(jù)覆蓋后,這些數(shù)據(jù)就真的丟失了,恢復(fù)工具也無力回天。所以!以只讀模式掛載磁盤可以盡量降低數(shù)據(jù)庫中數(shù)據(jù)被覆蓋的風(fēng)險,以提高恢復(fù)數(shù)據(jù)成功的比例。
5、模擬數(shù)據(jù)誤刪環(huán)境:
創(chuàng)建一個新的分區(qū)后,掛載到一個目錄下,往該目錄下cp一些文件或者目錄,校驗個問句的md5值,然后刪除該目錄下的文件,用來模擬實驗環(huán)境。


6、卸載磁盤分區(qū),并通過執(zhí)行extundelete命令查詢/dev/sdb1分區(qū)可恢復(fù)的數(shù)據(jù)信息:
# extundelete /dev/sdb1 --inode 2
根據(jù)輸出信息,標(biāo)記為Deleted狀態(tài)的是已經(jīng)刪除的文件或目錄。同時還可以看到已刪除文件的inode值,接下來就可以恢復(fù)文件了。

7、恢復(fù)單個文件:
extundelete /dev/sdb1 --restore-file passwd
會在當(dāng)前目錄下生成一個RECOVERED_FILES目錄,里面保存已經(jīng)恢復(fù)的文件。


" />
8、恢復(fù)單個目錄:
extundelete /dev/sdb1 --restore-directory /mongodb
恢復(fù)所有誤刪文件:
extundelete /dev/sdb1 --restore-all
extundelete還可以實現(xiàn)恢復(fù)某個時間段的數(shù)據(jù)??梢酝ㄟ^“--after”和“--before”參數(shù)實現(xiàn)!