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