恢复ext2文件系统中的被删除文件--debugfs-阿里云开发者社区

开发者社区> 科技小能手> 正文

恢复ext2文件系统中的被删除文件--debugfs

简介:
+关注继续查看
debugfs是linux系统自带的一个文件恢复工具,它可以恢复ext2文件系统的文件,但不能恢复ext3文件系统的文件,下面以一个实例来讲解debugfs恢复文件的方法。
首先增加一个虚拟硬盘,分区,格式化(mkfs.ext2),挂载分区。虚拟机环境实现。
实验分区为/dev/sdb2  ,创建分区步骤省略。
[root@oracledb ~]# mkfs.ext2  /dev/sdb2
新建一个目录,挂载上去
[root@oracledb /]# mkdir guazai
[root@oracledb /]# mount  /dev/sdb2  /guazai
新建一个文件,vi file.txt 随便写点内容即可。
[root@oracledb guazai]# ll
total 20
-rw-r--r-- 1 root root    40 Jul 30 15:42 file.txt
drwx------ 2 root root 16384 Jul 30 15:39 lost+found
为了模拟故障,使用rm命令删除file.txt
[root@oracledb guazai]# rm -rf file.txt 
[root@oracledb guazai]# ll
total 16
drwx------ 2 root root 16384 Jul 30 15:39 lost+found
该分区上的file.txt被删除了,怎样将其恢复回来呢?下面就是见证奇迹的时刻。
重新挂载分区,以只读方式
[root@oracledb ~]# mount -r -o remount /dev/sdb2
-r表示以只读方式,注意必须设置为只读方式
验证是否设置成功
[root@oracledb ~]# cd /guazai
[root@oracledb guazai]# mkdir aa
mkdir: cannot create directory `aa': Read-only file system
表示设置只读方式成功。
如果不能重新挂载,执行命令查看是谁正在使用该分区的文件
[root@oracledb guazai]# fuser -v -m /dev/sdb2
因为在这里是实验,故没有重要的进程和用户,直接将其杀死
[root@oracledb guazai]# fuser -k -v -m /dev/sdb2
执行命令debugfs
[root@oracledb guazai]# debugfs /dev/sdb2
debugfs 1.39 (29-May-2006)
debugfs:
在debugfs提示符下输入命令:lsdel  可以看到以下信息:
debugfs:  lsdel
 Inode  Owner  Mode    Size    Blocks   Time deleted
    12      0 100600   4096    1/   1 Thu Jul 30 15:42:13 2009
    13      0 100644     40    1/   1 Thu Jul 30 15:43:56 2009
2 deleted inodes found.
如果不知道以前被删除的文件名,可输入命令 ls -d查看
debugfs:  ls -d
 2  (12) .    2  (12) ..    11  (4072) lost+found   <0> (24) .file.txt.swp   
<0> (4028) file.txt 
 
从时间来看,删除的文件应该是inode为13的文件
使用dump来恢复:
debugfs:dump  <13>  /root/file.txt
其中13为inode,/root/file.txt为要恢复到得路径,路径和文件名可以随便设置
退出查看
debugfs:  quit
[root@oracledb ~]# pwd
/root
[root@oracledb ~]# ll file.txt 
-rw-r--r-- 1 root root 40 Jul 30 15:52 file.txt
[root@oracledb ~]# cat file.txt 
wo shi file file.txt
filesystem is ext2
恢复的文件就是我之前删除过的file.txt文件。如果不是的话,把13改成12就可以了。
好了ext2文件系统的文件恢复就到这里了,希望对大家有所帮助。



本文转自 zhangzj1030 51CTO博客,原文链接:http://blog.51cto.com/tech110/185569

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
持续更新 iText in Action 2nd Edition中文版 个人翻译
93页 This chapter covers 本章包括 ■ Constructing a  PdfPTable object构建一个PdfPtable对象 ■ Exploring the properties of a  PdfPCell  object研究PdfPCell属性 ...
1399 0
系统诊断小技巧(9):如何从Ext3或者Ext4文件系统推断分区位置
扩容失败或者系统重启后分区丢失,需要文件系统推定分区位置。我们这里给出一个自动化的工具
1752 0
6.2 file 写文件
#!/usr/bin/env python # -*- coding:utf-8 -*- #@Time      :2017/10/27 22:15 #@Author    :zhouyuyao #@File      :file_write.
569 0
xml文件转二进制文件的AIR
游戏开发中,有很多XML可能是很大的,比如一个任务配置文件,可能就接近2M(当然全部文件放在一个XML里面本身就有问题,比较好的做法就是分等级分隔XML),这样就需要对XML进行压缩。之前把文件压成ZIP包,然后读取ZIP,但现在读取ZIP文件里面的内容,是很卡的,后面改成读取二进制的XML数据,这样感觉不会卡,速度也很快。
596 0
23706
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载