现在用ext3文件系统的很多,Debugfs不支持ext3文件系统,下面介绍一款工具可以恢复ext3文件系统数据
ext3grep是恢复ext3文件系统上误删除文件的工具
下载地址:
注意软件需要e2fsprogs-libs的支持,我用的red hat默认已经装了
 
安装软件:
[root@zzh /]# tar -xzvf /root/ext3grep.tar.gz
[root@zzh /]# cd /root/ext3grep-0.10.1/
[root@zzh ext3grep-0.10.1]# ./configure
[root@zzh ext3grep-0.10.1]# make&&make install
 
实验删除一个文件
[root@zzh /]# rm -f /opt/kt/kt.kt
 
用df看一下删除文件所在分区
[root@zzh /]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/hdb1 95139 5664 84563 7% /opt
 
卸载分区(不卸载也可以恢复,只是为了防止在对分区有写入操作,把文件掩盖了就不好恢复了)
[root@zzh /]# umount /dev/hdb1 (或直接写挂载目录/opt)
 
执行删除文件查找
查找时间因恢复分区大小不同,可能会要很长时间
[root@zzh /]# ext3grep /dev/hdb1 --ls --inode 2
注解:inode代表逐级查找,2代表i节点
Indx Next | Inode | Deletion time Mode File name
==========+==========+----------------data-from-inode------+-----------+=========
0 1 d 2 drwxr-xr-x .
1 2 d 2 drwxr-xr-x ..
2 3 d 11 drwx------ lost+found
3 end d 8161 drwxr-xr-x kt
 
 
[root@zzh /]# ext3grep /dev/hdb1 --ls --inode 8161
Indx Next | Inode | Deletion time Mode File name
==========+==========+----------------data-from-inode------+-----------+=========
0 1 d 8161 drwxr-xr-x .
1 end d 2 drwxr-xr-x ..
3 end r 8163 D 1248196940 Wed Jul 22 01:22:20 2009 rrw-r--r-- kt.kt
 
 
执行文件恢复
[root@zzh /]# ext3grep /dev/hdb1 --restore-file kt/kt.kt
注意:不要加挂载目录opt,前面也没有根符合,加了恢复会找不到路径
 
出现Restoring kt/kt.kt表示文件恢复成功
恢复成功后会在当前目录下生成一个RESTORED_FILES的目录,恢复的文件就会保存这里,看看文件大小是否正确。
 
执行完恢复在把分区挂载上就OK了
[root@zzh /]# mount /dev/hdb1 /opt/
 
总结:
对刚删除没多久的文件可以很好的恢复,恢复扫描很费时间,分区不是很大的还可以,如果分区很大时间就难以接受了。