linux恢复删除文件

 
在使用linux的过程中,难免会误删除一些文件,可是怎样找回呢?
下面介绍一下ext3文件系统的数据恢复:
 
系统环境:Red Hat Enterprise Linux Server release 5
 
需要软件:
e2fsprogs
ext3grep
 
测试:
e2fsprogs这个软件系统自带,检查一下
linux恢复删除文件_恢复
如果没有在光盘中找,或到网上找
[url]http://rpmfind.net/linux/RPM[/url]
[url]http://rpm.pbone.net[/url]
这两个网站不错,几乎所有的包都能找到
#yum install -y e2fsprogs
#yum install -y e2fsprogs-devel
 
下载安装ext3grep
#wget [url]http://ext3grep.googlecode.com/files/ext3grep-0.7.0.tar.gz[/url]
#tar zxf ext3grep-0.7.0.tar.gz
#cd ext3grep-0.7.0
#./configure
#make && make install
#ext3grep
没错误的话就安装成功了
 
下面我们模拟一个环境(用真实的也可以)
1.创建大文件分区并挂载
#mkdir /termite
#cd /termite
#dd if=/dev/zero of=cc-disk bs=1M conut=500
#mkfs -t ext3 cc-disk
#mount -o loop /termite/cc-disk /home
这样我们的环境就建好了,查看一下
linux恢复删除文件_恢复_02
 
2.现在往/home下写入些文件
#cd /home
#echo test1 > 1
#cp /etc/resolv.conf .
#mkdir -p cc/cc1/cc2
查看一下
linux恢复删除文件_linux_03
 
然后删除这些文件和目录
linux恢复删除文件_恢复_04
 
现在开始恢复操作
首先umount掉分区
#umount /home
 
然后运行ext3grep
#ext3grep /termite/cc-disk --ls --inode 2
等待一会出现如图
linux恢复删除文件_恢复_05
 
看到刚才删除掉的文件了吧
现在恢复文件,见图
linux恢复删除文件_linux_06
 
会自动在你执行ext3grep命令的当前位置下建立RESTORED_FILES目录,恢复的文件就在这里面
linux恢复删除文件_恢复_07
 
从图中可看到目录cc恢复的不正确,cc下面应该还有cc1的,可知--restore-file适用与恢复文件,可以用--restore-all尝试恢复所有文件:
 
#ext3grep /termite/cc-disk --restore-all
但是也不一定能完全恢复。我试过有时可以把目录恢复(包括子目录),但是其中的文件却找不到。
 
如果想详细的了解ext3grep,可以到它的的HOW TO页去看看:
[url]http://www.xs4all.nl/~carlo17/howto/undelete_ext3.html[/url]
本文出自 “白蚁蓝丝” 博客,请务必保留此出处http://termite.blog.51cto.com/206292/87068