Linux操作系统,不像window系统有回收站,如果在没有备份的情况下rm file,那就悲剧了,本人在网上找了些方法,并做实验测试成功,特此分享一下:

背景:

操作系统:Red Hat Enterprise Linux Server release 5.4 (Tikanga) 64bit

恢复软件:e2fsprogs, ext3grep

目        录:/dev/sdb1    50G   /data

软件安装:

e2fsprogs这个软件系统自带,检查一下

如果没有在光盘中找,或到网上找
这两个网站不错,几乎所有的包都能找到

下载安装ext3grep

 
 
  
  1. #tar zxf ext3grep-0.7.0.tar.gz 
  2. #cd ext3grep-0.7.0 
  3. #./configure 
  4. #make && make install 
  5. #ext3grep  

没错误的话就安装成功了,如果安装不成功则缺少patch。

模拟环境:

1.在/data 目录下创建文件 1,resolve.conf  cc

 
  
  1. #cd /data
  2. #echo test1 > 1 
  3. #cp /etc/resolv.conf . 
  4. #mkdir -p cc/cc1/cc2 

然后删除这些文件和目录

现在开始恢复操作
首先umount掉分区
#umount /home
 
然后运行ext3grep
#ext3grep /termite/cc-disk --ls --inode 2
等待一会出现如图
 
看到刚才删除掉的文件了吧
现在恢复文件,见图

会自动在你执行ext3grep命令的当前位置下建立RESTORED_FILES目录,恢复的文件就在这里面

从图中可看到目录cc恢复的不正确,cc下面应该还有cc1的,可知--restore-file适用与恢复文件,可以用--restore-all尝试恢复所有文件:
 
#ext3grep /termite/cc-disk --restore-all
但是也不一定能完全恢复。我试过有时可以把目录恢复(包括子目录),但是其中的文件却找不到。

大功告成!