2021-05-12 14:32:11
CentOS 6.5安裝使用資料恢復軟體extundelete
CentOS 6.5安裝使用資料恢復軟體extundelete
一、安裝
(1) 首先extundelete軟體所依賴e2fsprogs e2fsprogs-libs e2fsprogs-devel軟體包
(2) 下載extundelete,官方網站是http://extundelete.sourceforge.net/ 目前的穩定版本是extundelete-0.2.4
[root@local app]# tar jxvf extundelete-0.2.4.tar.bz2
[root@localapp]# cd extundelete-0.2.4
[root@localapp]# ./configure 結果Writing generated files to disk
[root@localapp]# make 結果extundelete.cc:571: 警告:未使用的引數‘flags’
[root@localapp]# make install
結果 /usr/bin/install -c extundelete'/usr/local/bin'
(3) 解壓安裝
(4) 安裝完成後,就可以進行資料恢復的操作了
二、實用方法
(1) 命令格式 extundelete [options’選項’] [action‘命令’] device-file‘裝置檔案’
(2) 引數介紹extundelete –help
引數:
--version,-[vV]顯示軟體版本號
--help,顯示軟體幫助資訊
--superblock顯示超級塊資訊
--journal,顯示紀錄檔資訊
--after dtime,時間引數,表示在某時間段之後被刪除的檔案或目錄
--before dtime,時間引數,表示在某時間段之前被刪除的檔案或目錄
動作:
--inode ino,顯示節點ino 的資訊
--block blk 顯示資料塊 blk 的資訊
--restore-inode ino [,ino,…]恢復命令引數,表示恢復節點“ino”的檔案,恢復的檔案 會自動
存放在當前目錄下的RESTORED_FILES資料夾中,使用節點編號作為擴充套件名
--restore-file ‘path’ ,恢復命令蠶食,表示將恢復指定路徑的檔案,並把恢復的檔案 放在當
前目錄下的RECOVERED_FILES目錄中
--restore-files‘path’,恢復命令引數,表示將恢復在路徑中已列出的所有檔案
--restore-all,恢復命令引數,表示將嘗試恢復所有目錄和檔案
-j journal 表示從已經命名的檔案中讀取擴充套件紀錄檔
-b blocknumber,表示使用之前備份的超級快來開啟檔案系統,一般用於檢視現有超級快
是不是當前所要的檔案
-B blocksize,通過制定資料塊大小來開啟檔案系統,一般用於檢視已經知道大小的檔案
三、extundelete資料恢復過程
在資料被誤刪後,第一時間要做的是解除安裝被刪除資料所在的磁碟或者磁碟分割區,如果是系統根分割區的資料遭到誤刪,就需要將系統進入單使用者,並且將根目錄以唯讀的模式掛載,這樣做的原因是當問及被刪除後,僅僅是將檔案的inode節點中的磁區指標清零,實際檔案還儲存在磁碟上,如果磁碟以唯讀模式掛載,這些已刪除檔案的資料塊就可能被作業系統重新分配出去了,在這些資料塊被新的資料覆蓋後,這些資料就真的丟失了,恢復工具也沒辦法恢復。
(1) 通過extundelete恢復單個檔案操作以ext4檔案系統環境為例,我自己新增一塊磁碟裝置為/dev/sdb4
[root@local 桌面]# mkdir /data
[root@local 桌面]# mkfs.ext4 /dev/sdb4
[root@local 桌面]# mount /dev/sdb4 /data/
[root@local 桌面]# cp /etc/passwd /data/
[root@local data]# cp -r /root/app/extundelete-0.2.4 /data/
[root@local data]# md5sum passwd
90a8c0bb0bea88d6ce2ab252bd55ecfc passwd
[root@local data]# rm -rf /data/*
(2) 解除安裝磁碟分割區
[root@local data]# cd
[root@local ~]# umount /data/
(3) 通過extundelete命令查下/dev/sdb4分割區可恢復的資料資訊一般”root”目錄的 inode 值為
2, 一個分割區掛載到一個目錄下時,這個”root”目錄的 inode 值為 2
[root@local ~]# extundelete /dev/sdb4 --inode 2
………
File name | Inode number | Deleted status
. 2
.. 2
lost+found 11 Deleted
passwd 12 Deleted
extundelete-0.2.4 131073 Deleted
(4) 恢復單個檔案,恢復單個檔案的引數是--restore-file 這裡需要注意的是引數後面
指定的是恢復檔案路徑,這個路徑是檔案的相對路徑。相對路徑是相對於原來儲存路徑而言
的,如果儲存路徑是/data/passwd,那麼引數後面直接寫pass我的,如果原來的路徑是/data/
extundelete-0.2.4/ config.h那麼在引數後面就寫extundelete-0.2.4/ config.h即可。
[root@local ~]# extundelete /dev/sdb4 --restore-file passwd
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 40 groups loaded.
Loading journal descriptors ... 52 descriptors loaded.
Successfully restored file passwd
[root@local ~]# cd RECOVERED_FILES/
[root@local RECOVERED_FILES]# ls
passwd
[root@local RECOVERED_FILES]# md5sum passwd
90a8c0bb0bea88d6ce2ab252bd55ecfc passwd
通過extundelete恢復單個目錄
(1) 通過引數—restore-directory選項即可恢復指定目錄的資料,想要恢復/data/extundelete- 0.2.4下的資料
[root@local extundelete-0.2.4]# extundelete /dev/sdb4 --restore-directory extundelete-0.2.4
[root@local extundelete-0.2.4]# cd RECOVERED_FILES/
[root@local RECOVERED_FILES]# ls
extundelete-0.2.4
[root@local RECOVERED_FILES]# du -sh extundelete-0.2.4/
4.8M extundelete-0.2.4/
可以看到目錄extundelete-0.2.4已經恢復了
通過extundelete恢復所有誤刪的資料
(1) 當需要恢復的資料較多時,一個一個的恢復是非常繁瑣的,此時可以通過--restore-all來恢復所有的檔案或資料夾
[root@local ~]# cd /
[root@local /]# ls
app cgroup etc lib64 misc opt sbin sys var
bin data home lost+found mnt proc selinux tmp
boot dev lib media net root srv usr
[root@local /]# extundelete /dev/sdb4 --restore-all
[root@local /]# ls
app cgroup etc lib64 misc opt root srv usr
bin data home lost+found mnt proc sbin sys var
boot dev lib media net RECOVERED_FILES selinux tmp
[root@local /]# cd RECOVERED_FILES/
[root@local RECOVERED_FILES]# ls
extundelete-0.2.4 passwd
[root@local RECOVERED_FILES]# du -sh extundelete-0.2.4/
4.8M extundelete-0.2.4/
通過extundelete恢復某個時間段的資料
(1) 當刪除的資料量非常大的時候,很多資料沒有用,這時我們要恢復某個時間短的資料,
extundelete提供了--after,--before引數。
首先假設在/data分割區下剛剛建立了extundelete-0.2.4.tar.bz2,然後刪除此檔案,接著卸
載/data分割區,開始恢復一小時內的資料操作如下:
[root@local data]# cp /root/extundelete-0.2.4.tar.bz2 /data/
[root@local data]# ls
extundelete-0.2.4.tar.bz2
[root@local data]# date +%s
1447823133
[root@local data]# rm -rf extundelete-0.2.4.tar.bz2
[root@local data]# cd
[root@local ~]# umount /data
[root@local ~]# date +%s
1447823221
[root@local ~]# cd /data/
[root@local data]# ls
[root@local data]# extundelete --after 1447819621 --restore-all /dev/sdb4
[root@local data]# ls
[root@local data]# cd RECOVERED_FILES/
[root@local RECOVERED_FILES]# ls
extundelete-0.2.4.tar.bz2
註:可以看到剛才刪除的檔案已經恢復這個操作需要注意--after引數後面跟的是時間的總秒數起算時間“1970-01-01 00:00:00 UTC”通過date +%s 命令可將當前時間轉換成總秒數之後恢復1小時以前的資料就需要用1447823221減去60*60=3600所得的數
Linux下高效資料恢復軟體extundelete應用實戰 http://www.linuxidc.com/Linux/2014-10/108395.htm
本文永久更新連結地址:http://www.linuxidc.com/Linux/2015-11/125330.htm
相關文章