Linux ext2文件系统下恢复误删的文件

2363阅读 0评论2012-03-19 技术宅
分类:LINUX


一、文件误删


如上图可得到
(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可看出文件的时间,然后自己判断进行恢复

上一篇:Linux 格式化分区 报错Could not stat --- No such file or directory 和 partprobe 命令
下一篇:virbr0 虚拟网卡卸载方法