通過 extundelete 嘗試資料恢複
下文以 CentOS 6.8 ext4 檔案系統為實驗環境,工具為 extundelete。
在實際線上恢複過程中,切勿将 extundelete 安裝到誤删的檔案所在磁盤,這樣會有一定幾率将需要恢複的資料徹底覆寫。建議加裝一塊磁盤将 extundelete 安裝到此磁盤,再做以下操作。因為後續恢複删除檔案的操作要執行 umount 裝置分區的操作,是以此方法并不适合删除系統盤分區中的檔案。
環境準備:
在本地虛拟機進行測試為了友善檢測我臨時增加了一塊10G 的硬碟分成2個分區 分區格式為ext4 /dev/sdb1 挂載到/data 目錄,裡面用于存放資料
/dev/sdb2 挂載到/e2sf 目錄 ,用于存放安裝軟體
1.檢查系統依賴包
[root@caosm03 e2fs]# rpm -qa | grep e2fsprogs
e2fsprogs-libs-1.41.12-23.el6.x86_64
e2fsprogs-1.41.12-23.el6.x86_64
[root@caosm03 e2fs]# yum install -y e2fsprogs-dev
2.下載下傳軟體進行安裝
[root@caosm03 e2fs]# yum install -y e2fsprogs-devel
[root@caosm03 e2fs]# tar -jxvf extundelete-0.2.4.tar.bz2 # 對檔案進行解壓
[root@caosm03 extundelete-0.2.4]# ./configure && make && make install # 對檔案進行安裝
提示錯誤資訊:
configure: error: in `/e2fs/extundelete-0.2.4':
configure: error: C++ compiler cannot create executables
經檢視是由于缺少C++ 依賴包進行安裝
[root@caosm03 extundelete-0.2.4]# yum install gcc-c++ -y # 安裝即可
[root@caosm03 extundelete-0.2.4]# ./configure && make && make install #重新編譯安裝
3.效驗檔案安裝是否正确
[root@caosm03 extundelete-0.2.4]# extundelete -v
extundelete version 0.2.4
libext2fs version 1.41.12
Processor is little endian.
4.對需要進行測試的檔案進行MD5值效驗
[root@caosm03 data]# md5sum 222.log
24deb4b21ea98cb75f1b21a73e2dc283 222.log
5.對裡面的日志進行部分删除進行測試,檢視前需要解除安裝該磁盤分區
[root@caosm03 data]# umount /dev/sdb1
umount: /data: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
[root@caosm03 ~]#fuser -km /dev/sdb1
[root@caosm03 ~]# umount /dev/sdb1
[root@caosm03 ~]# extundelete /dev/sdb1 --inode 2
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 41 groups loaded.
...
File name | Inode number | Deleted status
. 2
.. 2
lost+found 11
222.log 14
.222.log.swp 12 Deleted
222.log~ 13 Deleted
.111.log.swx 2021094190 Deleted
GET93396120171028_nginx232.log~ 14 Deleted
[root@caosm03 e2fs]# extundelete --restore-all /dev/sdb1
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 41 groups loaded.
Loading journal descriptors ... 81 descriptors loaded.
Searching for recoverable inodes in directory / ...
3 recoverable inodes found.
Looking through the directory structure for deleted files ...
Block 33792 is allocated
預設被删檔案會恢複到目前目錄下的 RECOVERED_FILES 目錄中去
[root@caosm03 RECOVERED_FILES]# ll
total 5344
-rw-r--r-- 1 root root 5471632 Dec 15 12:31 222.log~
[root@caosm03 RECOVERED_FILES]# md5sum 222.log~
24deb4b21ea98cb75f1b21a73e2dc283 222.log~
經對比 這個MD5效驗值與之前的md5效驗值一緻,說明檔案已經被徹底恢複。