導讀 | Linux作為企業級服務器,數據的安全性至關重要,任何數據德爾丟失和誤刪都是不可容忍的!最近我接觸到一款軟件-ext3grep,它可以恢復誤刪的數據,下面簡單講解一下這個軟件。 |
ext3grep的恢復原理
利用ext3grep恢復文件時並不依賴特定文本格式。首先ext3grep通過文件系統的root inode(根目錄的inode一般為2)來獲取當前文件系統下所有文件的信息,包括存在的和已經刪除的文件,這些信息包括文件名和inode。然后利用inode信息結合日志去查詢該inode所在的block位置,包括直接塊、間接塊等信息。最后利用dd命令將這些信息備份出來,從而恢復數據文件。
ext3grep的安裝
ext3grep官方網站:http://code.google.com/p/ext3grep/
網盤下載:http://pan.baidu.com/s/1i47ZPsT
所需的系統相關包如下:
[root@localhost ~]#rpm -qa | grep e2fsprogs e2fsprogs-libs-1.39-8.el5 e2fsprogs-1.39-8.el5 e2fsprogs-devel-1.39-8.el5
以上三個都必須安裝,不然后面的安裝會出現問題。
下面進入編譯安裝階段,過程如下:
[root@localhost /opt]# tar zxvf ext3grep-0.10.2.tar.gz [root@localhost ext3grep-0.10.2]# ./configure [root@localhost ext3grep-0.10.2]# make [root@localhost ext3grep-0.10.2]# make install [root@localhost ext3grep-0.10.2]# ext3grep -v Running ext3grep version 0.10.2
默認的ext3grep命令放在/usr/local/bin目錄下,請通過“ext3grep --help”獲取詳細使用幫助。
實戰ext3grep恢復文件
模擬數據誤刪環境
下面通過一個模擬環境,詳細介紹使用ext3grep恢復數據文件的過程:
[root@localhost ~]# mkdir /disk [root@localhost ~]# mkdir /mydata [root@localhost ~]# cd /mydata [root@localhost mydata]# dd if=/dev/zero of=/mydata/disk1 count=102400 [root@localhost mydata]#mkfs.ext3 /mydata/disk1
[root@localhost mydata]#mount -o loop /mydata/disk1 /disk [root@localhost mydata]#cd /disk [root@localhost disk]# cp /etc/profile /disk [root@localhost disk]# cp /boot/initramfs-2.6.32-220.el6.i686.img /disk [root@localhost disk]#echo"I am archy" > ext3grep.txt [root@localhost disk]#mkdir /disk/ext3grep [root@localhost disk]#cp /etc/hosts /disk/ext3grep [root@localhost disk]#ls -al
[root@localhost disk]#md5sum profile [root@localhost disk]#md5sum initramfs-2.6.32-220.el6.i686.img [root@localhost disk]#md5sum ext3grep.txt [root@localhost disk]#rm -rf /disk/* [root@localhost /opt]# umount /disk
查詢數據恢復信息
執行如下命令,查詢需要恢復的數據信息:
[root@localhost /opt]# ext3grep /mydata/disk1 --ls --inode 2
這條命令主要用於掃描當前文件系統下所有的信息,包括存在的和已刪除的文件,其中含有D標識的就是文件已被刪除。通過以下命令可以獲取文件要恢復的路徑信息:
[root@localhost /opt]# ext3grep /mydata/disk1 --dump-names
恢復刪除數據
單個文件恢復命令如下:
[root@localhost /opt]# ext3grep /mydata/disk1 --restore-file ext3grep.txt
恢復的文件存放在/opt/RESTORED_FILES目錄下。
恢復所有已刪除數據的命令如下:
[root@localhost /opt]# ext3grep /mydata/disk1 --reatore-all