恢复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
相关文章
|
3月前
|
供应链 Shell Linux
通过extundelete使用shell实现CentOS6 ext4文件系统误删除文件的恢复
通过extundelete使用shell实现CentOS6 ext4文件系统误删除文件的恢复
44 0
|
8月前
7.1.5 EXT2/EXT3/EXT4 文件的存取与日志式文件系统的功能
7.1.5 EXT2/EXT3/EXT4 文件的存取与日志式文件系统的功能
69 0
|
程序员 Linux 芯片
fat文件系统查找、删除、创建目录
fat文件系统查找、删除、创建目录
243 0
|
存储 Linux 索引
Ext 文件系统
Ext 文件系统
105 0
Ext 文件系统
|
IDE Unix Linux
linux中的tar打包、压缩多个文件、磁盘查看和分区类、du查看文件和目录占用的磁盘空间、df查看磁盘空间使用情况、lsblk查看设备挂载情况、fdisk分区、mount/umount挂载/卸载、设置开机自动挂载
tar [选项] XXX.tar.gz 将要打包进去的内容 (功能描述:打包目录,压缩后的 文件格式.tar.gz)du 目录/文件 (功能描述:显示目录下每个子目录的磁盘使用情况)du: disk usage 磁盘占用情况。详细的请看我之前发的博客。linux常用命令下。linux常用命令中。linux常用命令上。...............对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根 目录、一个独立且唯一的文件结构。Linux中每个分区都是用来组成整个文件系统的一部分,它在用一种叫做“挂载”的处理 方法,它整个文件系统中包含了一整套的文件和目录,并将一
290 1
linux中的tar打包、压缩多个文件、磁盘查看和分区类、du查看文件和目录占用的磁盘空间、df查看磁盘空间使用情况、lsblk查看设备挂载情况、fdisk分区、mount/umount挂载/卸载、设置开机自动挂载
|
Linux
10.18 Linux mke2fs命令格式化硬盘(给硬盘写入文件系统)
前面讲到,mkfs 命令为硬盘分区写入文件系统时,无法手动调整分区的默认参数(比如块大小是 4096 Bytes),如果想要调整,就需要使用本节介绍的 mke2fs 命令。
254 0
10.18 Linux mke2fs命令格式化硬盘(给硬盘写入文件系统)
|
Linux 存储
深入解析ext2文件系统之mke2fs
上一遍博文的重点其实将ext2整体的组织框架,我们知道了ext2文件系统由块组组成,每个块组里面的组织形式。我们甚至直接把超级块和组描述符里面的内容,用十六进制形式展现了出来。这篇博文主要讲述如何mke2fs生成合适需要的ext2 文件系统,基本就是参数选择的问题。
1016 0