我用的是Centos系統,在安裝extundelete之前需要安裝e2fsprogs,e2fsprogs-libs,e2fsprogs-devel。
這里用:yum install e2fsprogs e2fsprogs-libs e2fsprogs-devel 來完成安裝。
編譯安裝extundelete:
tar xjf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4
./configure
make && make install
extundelete的用法,可以通過help查看詳細!
extundelete恢復數據的過程:
在數據被誤刪除后,第一時間要做的就是卸載被刪除數據所在的分區,如果是根分區的數據遭到誤刪,就需要將系統進入單用戶模式,並且將根分區以只讀模式掛載。這樣做的原因很簡單,因為將文件刪除后,僅僅是將文件的inode節點中的扇區指針清零,實際文件還儲存在磁盤上,如果磁盤繼續以讀寫模式掛載,這些已刪除的文件的數據塊就可能被操作系統重新分配出去,在這些數據庫被新的數據覆蓋后,這些數據就真的丟失了,恢復工具也無力回天。所以!以只讀模式掛載磁盤可以盡量降低數據庫中數據被覆蓋的風險,以提高恢復數據成功的比例。
模擬數據誤刪環境:
創建一個新的分區后,掛載到一個目錄下,往該目錄下cp一些文件或者目錄,校驗個問句的md5值,然后刪除該目錄下的文件,用來模擬實驗環境。
卸載磁盤分區,並通過執行extundelete命令查詢/dev/sdb1分區可恢復的數據信息:
# extundelete /dev/sdb1 --inode 2
根據輸出信息,標記為Deleted狀態的是已經刪除的文件或目錄。同時還可以看到已刪除文件的inode值,接下來就可以恢復文件了。
恢復單個文件:
extundelete /dev/sdb1 --restore-file passwd
會在當前目錄下生成一個RECOVERED_FILES目錄,里面保存已經恢復的文件。
恢復單個目錄:
extundelete /dev/sdb1 --restore-directory /mongodb
恢復所有誤刪文件:
extundelete /dev/sdb1 --restore-all
extundelete還可以實現恢復某個時間段的數據。可以通過“--after”和“--before”參數實現!
原文地址:http://jingyan.baidu.com/article/3c48dd3493221de10be35889.html









