下面介绍具体方法:
先说下我准备删除的文件为/root/silencewolf/silencewolf.sh 里面内容如下:
执行rm -f silencewolf.sh,用ls查看文件夹为空了
下面开始恢复文件,具体操作如下:
1、输入debugfs,打开debugfs功能,打开误删除的分区磁盘
open /dev/sda3 具体如图:
2、输入ls -d /root/silencewolf 删除文件的文件夹路径如图:
找到删除的文件的索引值<18022483>
3、输入logdump -i <18022483> 命令如下图:
上面输出信息有好几页,做好塞选,找到如下字段:
Blocks:(0+1):18024668这段记录18024668这个值,quit退出debugfs。
4、下面用dd命令来恢复,输入如下:
dd if=/dev/sda3 of=/tmp/silencewolf.sh.bak bs=4096 count=1 skip=18024668
5、查看/tmp目录下文件多了个silencewolf.sh.bak,cat、他发现为原来删除的文件silencewolf.sh如下图:
到这里文件恢复已经完成,把他从/tmp下cp到/root/silencewolf/silencewolf.sh彻底完成恢复了。
总结:主要利用debugfs的调试功能找到文件的索引,其实rm删除的文件并不是真的删除了,而是inode被删除了,所以比较小的文件可以用这种方法恢复,对于大文件,这个恢复有点问题,利用extundelete工具能够很好的解决大文件误删除的问题,以后有机会在做介绍。
本文出自 “SilenceWolf” 博客,请务必保留此出处http://silencewolf.blog.51cto.com/5009737/1425073