1. 程式人生 > >Linux中如何恢復rm命令誤刪除的文件之extundelete編譯安裝及使用

Linux中如何恢復rm命令誤刪除的文件之extundelete編譯安裝及使用

可用 並且 地址 cat inode res 丟失 lin 所在

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編譯安裝及使用