浅谈Linux系统误删除文件恢复方法

时间:2022-01-27 17:30:44

各位有没有在Linux下误删除过文件,是否删除后使您非常懊恼,为什么Linux系统没有像windows一样的回收站可以恢复误删除的文件?各位看官,Linux下误删除文件不必惊慌,下面几步叫你如何在Linux系统下恢复误删除的文件(注意这个方法对Linux单用户操作非常有用,但是多用户操作是否能恢复就看运气了),下面介绍具体方法:

先说下我准备删除的文件为/root/silencewolf/silencewolf.sh 里面内容如下:

浅谈Linux系统误删除文件恢复方法

执行rm -f silencewolf.sh,用ls查看文件夹为空了

浅谈Linux系统误删除文件恢复方法

下面开始恢复文件,具体操作如下:

1、输入debugfs,打开debugfs功能,打开误删除的分区磁盘

open /dev/sda3 具体如图:

浅谈Linux系统误删除文件恢复方法

2、输入ls -d /root/silencewolf 删除文件的文件夹路径如图:

浅谈Linux系统误删除文件恢复方法

找到删除的文件的索引值<18022483>

3、输入logdump -i <18022483> 命令如下图:

浅谈Linux系统误删除文件恢复方法

上面输出信息有好几页,做好塞选,找到如下字段:

浅谈Linux系统误删除文件恢复方法

Blocks:(0+1):18024668这段记录18024668这个值,quit退出debugfs。

4、下面用dd命令来恢复,输入如下:

dd if=/dev/sda3 of=/tmp/silencewolf.sh.bak bs=4096 count=1 skip=18024668

浅谈Linux系统误删除文件恢复方法

5、查看/tmp目录下文件多了个silencewolf.sh.bak,cat、他发现为原来删除的文件silencewolf.sh如下图:

浅谈Linux系统误删除文件恢复方法

到这里文件恢复已经完成,把他从/tmp下cp到/root/silencewolf/silencewolf.sh彻底完成恢复了。


总结:主要利用debugfs的调试功能找到文件的索引,其实rm删除的文件并不是真的删除了,而是inode被删除了,所以比较小的文件可以用这种方法恢复,对于大文件,这个恢复有点问题,利用extundelete工具能够很好的解决大文件误删除的问题,以后有机会在做介绍。

希望这篇文章能够给Linux菜鸟带来一点帮助~~~~


本文出自 “SilenceWolf” 博客,请务必保留此出处http://silencewolf.blog.51cto.com/5009737/1425073