1. 程式人生 > >Linux下常用的數據恢復工具

Linux下常用的數據恢復工具

restore 幫助信息 特定 結合 inux 只讀 urn 並且 格式

一。數據刪除

命令:rm -rf,將任何數據直接從硬盤刪除,且沒有任何提示

建議做法:

  • 把命令參數放到後面:rm -rfi
  • 將刪除的東西通過mv命令移動到系統下的/temp目錄下,然後寫個腳 本定期執行清除操作
  • 備份

二。extundelete的安裝與使用

Linux下常見的基於開源的數據恢復工具有:debugfs/R-Linux/ext3grep/extundelete

1.恢復原理:三步

  • extundelete恢復文件並不依賴特定的文件格式,首先extundelete會通過文件系統的incode信息(可通過 ls -id / 查看;根目錄的incode一般為2)來獲得當前文件系統下所有文件的信息(包括文件名和incode,包括已刪除的文件)。
  • 然後利用incode信息結合日誌去查詢該incode所在塊位置,包括直接塊/間接塊等信息。
  • 最後利用dd命令將這些信息備份出來,從而恢復數據文件

2.安裝(介紹編譯安裝)

  • 安裝前需安裝e2fsprogs和e2fsprogs-libs兩個依賴包
  • 下載extundelete(.tar.bz2)結尾的文件,假設為0.2.4版本
  • 解壓:tar jxvf extundelete-0.2.4.tar.bz2
  • cd extundelete-0.2.4
  • ./configure
  • make
  • make install

3.用法

命令格式:extundelete [optons] [action] device-file

[option]參數:

  • --version,-[vV],顯示軟件版本號
  • --help,顯示軟件幫助信息
  • --superblock,顯示超級塊信息
  • --journal,顯示日誌信息
  • --after dtime,時間參數,表示在某段時間之後被刪除的文件或目錄
  • --before dtime,時間參數,表示在某段時間之前被刪除的文件或目錄

[action]動作參數:

  • --incode into,顯示節點“ino”的信息
  • --block blk,顯示數據塊“blk”的信息
  • --restore-incode ino[,ino,...],還原命令參數,表示還原節點“ino”的文件,還原的文件會自動放在當前目錄下的RESTORED_FILES文件夾中,使用節點編號作為擴展名。
  • --restore-file‘path‘,還原命令參數,表示將還原指定路徑的文件,並把還原的文件放在當前目錄下的RECOVERED_FILES文件中。
  • --restore-all,還原命令參數,表示將嘗試還原所有目錄和文件
  • -j journal,表示從已經命名的文件中讀取擴展日誌。
  • -b blocknumber,表示使用之前備份的超級塊來打開文件系統,一般用於查看現有超級塊是不是當前所要的文件
  • -B blocksize,表示使用數據塊大小來打開文件系統,一般用於查看已經知道大小的文件。

4.註意

數據被誤刪之後,首先要做的是卸載被刪除數據所在的磁盤或磁盤分區。如果根分區遭到刪除,需要將系統進入單用戶,並且將根分區以只讀模式掛載。

原因:文件刪除後,僅僅是將文件的incode中的扇區指針清零,實際文件還在。如果磁盤以讀寫械掛載,這些已刪除文件的數據塊就可能被操作系統重新分配出去,在這些數據塊被新的數據覆蓋後,這些數據就真丟失了。所以以只讀模式掛載可以盡量降低數據塊中數據被覆蓋的風險。

Linux下常用的數據恢復工具