环境:CentOS 5.3 X86_64操作系统
示例分区:/dev/sdb1挂载在/data分区上
示例情景:在/data的根目录有个test目录,目录下有两个子目录和两个文件,子目录下还有文件,我删除test目录下的所有文件然后恢复,结论是文件可以成功恢复但是不能直接恢复目录,只能单独的恢复目录下文件(目录结构在)
1. 查看文件系统是不是ext3文件系统
[root@MFS-chunkserver-2 ]# parted /dev/sdb1
2. 查看分区信息
[root@MFS-chunkserver-2 ]# df –lh
3. 查看目录结构
[root@MFS-chunkserver-2 ]# cd /data/test/
[root@MFS-chunkserver-2 ]# tree
4. 删除/data/test下的所有文件和目录
[root@MFS-chunkserver-2 ]# rm -rf *
[root@MFS-chunkserver-2 ]# ls
[root@MFS-chunkserver-2 ]#
5. 开始安装恢复工具
[root@MFS-chunkserver-2 ]#tar zxvf ext3grep-0.10.1.tar.gz
[root@MFS-chunkserver-2 ]#cd ext3grep-0.10.1
[root@MFS-chunkserver-2 ]#./configure
[root@MFS-chunkserver-2 ]#make
[root@MFS-chunkserver-2 ]#make install
6. 卸载分区
[root@MFS-chunkserver-2 ]# cd /
[root@MFS-chunkserver-2 ]# umount /data/
7 进入到/data目录查看inode信息
[root@MFS-chunkserver-2 ]# cd /data/
[root@MFS-chunkserver-2 ]# ext3grep /dev/sdb1 --ls --inode 2(可以看见最后面已经找到了test目录)
8. 记录test目录的inode信息,然后继续查找test目录下的目录和文件inode信息
[root@MFS-chunkserver-2 ]# ext3grep /dev/sdb1 --ls --inode 131081(此处是inode)
9. 可以看到已经找到了被删除的a和b目录,记录下inode信息开始恢复目录
[root@MFS-chunkserver-2 ]# ext3grep /dev/sdb1 --restore-inode 131082(a目录)
[root@MFS-chunkserver-2 ]# ext3grep /dev/sdb1 --restore-inode 131083(b目录)
10. 在第8步中同样也看到了被删除的文件test1和test2
记录下inode信息开始恢复文件
[root@MFS-chunkserver-2 ]# ext3grep /dev/sdb1 --restore-file test/test1
[root@MFS-chunkserver-2 ]# ext3grep /dev/sdb1 --restore-file test/test2
可以看到提示:表示恢复文件成功
11. 可以看到有一个RESTORED_FILES的目录就是恢复的目录
[root@MFS-chunkserver-2 ]# pwd
/data
[root@MFS-chunkserver-2 ]# ls
12 进入到RESTORED_FILES目录,可以看到test目录已经恢复了同样还有两个目录整好是a和b目录的inode的信息命名
[root@MFS-chunkserver-2 ]# ls
13 分别进入查看
[root@MFS-chunkserver-2 ]# cd inode.131082
[root@MFS-chunkserver-2 ]# ll -l
total 0
[root@MFS-chunkserver-2 ]# cd ..
[root@MFS-chunkserver-2 ]# cd test/
[root@MFS-chunkserver-2 ]# ls
可以说明,test1的文件和test2文件是恢复了但是目录没有
14. 把恢复的文件复制到别的地方,然后挂在分区后在把文件拷贝回来就大功告成了!
[root@MFS-chunkserver-2 ]# mount /dev/sdb1 /data/