各位有没有在Linux下误删除过文件,是否删除后使您非常懊恼,为什么Linux系统没有像windows一样的回收站可以恢复误删除的文件?各位看官,Linux下误删除文件不必惊慌,下面几步叫你如何在Linux系统下恢复误删除的文件(注意这个方法对Linux单用户操作非常有用,但是多用户操作是否能恢复就看运气了),下面介绍具体方法:
先说下我准备删除的文件为/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工具能够很好的解决大文件误删除的问题,以后有机会在做介绍。
希望这篇文章能够给Linux菜鸟带来一点帮助~~~~
本文出自 “SilenceWolf” 博客,请务必保留此出处http://silencewolf.blog.51cto.com/5009737/1425073