經過 extundelete 嘗試數據恢復node
下文以 CentOS 6.8 ext4 文件系統爲實驗環境,工具爲 extundelete。nginx
在實際線上恢復過程當中,切勿將 extundelete 安裝到誤刪的文件所在磁盤,這樣會有必定概率將須要恢復的數據完全覆蓋。建議加裝一塊磁盤將 extundelete 安裝到此磁盤,再作如下操做。由於後續恢復刪除文件的操做要執行 umount 設備分區的操做,因此此方法並不適合刪除系統盤分區中的文件。
環境準備:c++
在本地虛擬機進行測試爲了方便檢測我臨時增長了一塊10G 的硬盤分紅2個分區 分區格式爲ext4 /dev/sdb1 掛載到/data 目錄,裏面用於存放數據 /dev/sdb2 掛載到/e2sf 目錄 ,用於存放安裝軟件
1.檢查系統依賴包ide
[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值效驗rest
[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
6.通常一個分區掛載到一個目錄下時,這個」根」目錄的 inode 值爲 2。咱們爲了查看根目錄全部文件,因此查看分區 inode 爲 2的這個部分執行:code
[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
7.恢復進行測試ip
[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
8.檢驗是否恢復成功
默認被刪文件會恢復到當前目錄下的 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效驗值一致,說明文件已經被完全恢復。