如何恢复被删除的LINUX文件

如何恢复被删除的LINUX文件,第1张

Linux ext2文件系统下恢复误删的文件一、文件误删如上图可得到(1)/dev/sdb2挂载到/recover目录,且/dev/sdb2使用的是ext3 filesystem(2)/dev/sdb1挂载到/software目录,且/dev/sdb1使用的是ext2 filesystem如上图可得到:/software目录中有一个文件grub.conf如上图可得到:/software目录中的文件grub.conf被删除二、找回文件由于目录/software中的grub.conf文件已被删除,那么应该怎么找回该文件呢?由于/dev/sdb1分区使用的是ext2 filesystem,所以我们可以使用工具:debugfs,来找回文件注意:debugfs是linux系统自带的一个文件恢复工具,它可以恢复ext2文件系统的文件,但不能恢复ext3文件系统的文件第一步:将要找回的文件所在的分区重新挂载成只读(因为这样比较安全,可以防止因新的文件写入该分区而导致无法找回grub.conf文件)[root@client ~]# mount -n -o remount,ro /dev/sdb1注意:如果不能重新挂载,那么一定有用户正在使用该分区中的文件,我们可以使用指令:fuser -m -v /dev/sdb1来查看当前哪个用户正在使用该分区中的文件,然后使用fuser -k -m -v /dev/sdb1来杀死用户使用该分区的任何进程第二步:使用debugfs工具恢复文件注意两点(1)lsdel列出已被删除的文件的节点信息;stat显示某个节点所对应的文件信息;dump表示恢复作用(2)如果被删除的文件很多,那么通过lsdel可看出文件的时间,然后自己判断进行恢复

原理主要是删除的文件并没有实际上从硬盘上抹去,只是inode索引删除了相关的信息,因此只要找到刚删除文件的block上,就可以恢复已经删除的文件。

以下方法在ext3的文件系统上测试通过,ext2的没有测试过。假设删除的文件在dir下面,位于/dev/sda5上。

主要借助debugfs

1 运行debugfs,进入调度模式

2 执行open /dev/sda5

3 执行ls -d dir 会列出此目录最近的 *** 作,其中可以看到<num>的日志删除记录

4 执行logdump -i <num>显示此日志内容

5 在输出中寻找删除文件对应的block,记录下来blockid

6退出debugfs,运行dd if=/dev/sda5 of=/tmp/saved bs=1024 count=1 skip=blockid

作为一个多用户、多任务的 *** 作系统,Linux下的文件一旦被删除,是难以恢复的。尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据。不过,对于家庭单机使用的Linux,或者误删文件后及时补救,还是可以恢复的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7604312.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存