ext3文件系统还原rm删除的文件

环境: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/

你可能感兴趣的:(linux)