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,或者误删文件后及时补救,还是可以恢复的。
评论列表(0条)