首頁 > 軟體

CentOS rm -rf 恢復刪除的檔案

2020-06-16 17:35:51

Linux有時候執行了 rm -rf 等操作誤刪了檔案絕對是一件可怕的事情,好在有一些解決的辦法可以臨時救急。這時我們就要用到一款叫做extundelete的工具了。

依賴
安裝
查詢要恢復的驅動器名
執行恢復
恢復單個檔案
恢復一個目錄
恢復整個分割區

Linux下執行 rm 並不會真正刪除,而是將inode節點中的磁區刪除,同時釋放資料塊。在資料塊被系統重新分配前,這部分資料還是可以找回來的。

網上說在刪除檔案後要立即unmount這個分割區,這樣做其實是為了讓外界不再寫入,我們也可以設定為readonly模式代替。當然,如果為了不影響其它應用的執行,也可以不做unmount。

好的,現在就該神器extundelete上場了。以CentOS6.5為例

依賴
  yum -y install e2fsprogs e2fsprogs-libs e2fsprogs-devel

安裝
  wget http://jaist.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
  tar jxvf extundelete-0.2.4.tar.bz2
  cd extundelte-0.2.4
  ./configure
  make; make install
 

查詢要恢復的驅動器名
  df
   
  Filesystem            1K-blocks    Used  Available Use% Mounted on
  /dev/sda1                495844    64150      406094  14% /boot
 

執行恢復

預設恢復到當前目錄下的RECOVERED_FILES目錄中去

恢復單個檔案
  extundelete /dev/sdb1 --restore-file hosts

恢復一個目錄
  extundelete /dev/sdb1 --restore-files test/

恢復整個分割區
  extundelete /dev/sdb1 –-restore-all
這個工具貌似支援EXT4檔案系統,經過實際測試,restore-all比較好用,在初次刪除後可以很好的恢復檔案及目錄結構,但是如果我在相同位置新建了相同的檔名或者目錄名,就會恢復失敗(找不到了)。而恢復單獨的檔案或者目錄則沒有成功,如果有成功的可以告訴我。

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-08/134040.htm


IT145.com E-mail:sddin#qq.com