Linux中如何恢復rm命令誤刪除的文件之extundelete編譯安裝及使用
1、下載extundelete包,安裝依賴
我用的是Centos系統,在安裝extundelete之前需要安裝e2fsprogs,e2fsprogs-libs,e2fsprogs-devel。
yum install e2fsprogs e2fsprogs-libs e2fsprogs-devel
然後下載extundelete程序
下載地址: http://extundelete.sourceforge.net/
2、編譯安裝extundelete
編譯步驟: tar xjf extundelete-0.2.4.tar.bz2 cd extundelete-0.2.4 ./configure make&& make install
extundelete的用法,可以通過help查看詳細!
extundelete軟件恢復原理
extundelete恢復數據的過程:在數據被誤刪除後,第一時間要做的就是卸載被刪除數據所在的分區,如果是根分區的數據遭到誤刪,就需要將系統進入單用戶模式,並且將根分區以只讀模式掛載。這樣做的原因很簡單,因為將文件刪除後,僅僅是將文件的inode節點中的扇區指針清零,實際文件還儲存在磁盤上,如果磁盤繼續以讀寫模式掛載,這些已刪除的文件的數據塊就可能被操作系統重新分配出去,在這些數據庫被新的數據覆蓋後,這些數據就真的丟失了,恢復工具也無力回天。所以!以只讀模式掛載磁盤可以盡量降低數據庫中數據被覆蓋的風險,以提高恢復數據成功的比例。
3、卸載需要恢復文件的分區
fuser -k /mnt/test/
umount /mnt/test
4、使用extundelete查看分區上存在的文件
並通過執行extundelete命令查詢/dev/sdb1分區可恢復的數據信息
extundelete --inode 2 /dev/sdb1
恢復文件例子
例如獲得被刪文件inode為13 恢復: extundelete --restore-inode 13 /dev/sdb1 mount /dev/sdb1 /mnt/test/ mv RECOVERED_FILES/file.13 /mnt/test/resolv.conf 恢復完成,可用cat驗證內容。
恢復單個文件:extundelete /dev/sdb1 --restore-file passwd 會在當前目錄下生成一個RECOVERED_FILES目錄,裏面保存已經恢復的文件。
恢復單個目錄:extundelete /dev/sdb1 --restore-directory /mongodb
恢復所有誤刪文件:extundelete /dev/sdb1 --restore-allextundelete
還可以實現恢復某個時間段的數據。可以通過“--after”和“--before”參數實現!
Linux中如何恢復rm命令誤刪除的文件之extundelete編譯安裝及使用