导读 Linux作为企业级服务器,数据的安全性至关重要,任何数据德尔丢失和误删都是不可容忍的!最近我接触到一款软件-ext3grep,它可以恢复误删的数据,下面简单讲解一下这个软件。
ext3grep的恢复原理

利用ext3grep恢复文件时并不依赖特定文本格式。首先ext3grep通过文件系统的root inode(根目录的inode一般为2)来获取当前文件系统下所有文件的信息,包括存在的和已经删除的文件,这些信息包括文件名和inode。然后利用inode信息结合日志去查询该inode所在的block位置,包括直接块、间接块等信息。最后利用dd命令将这些信息备份出来,从而恢复数据文件。

ext3grep的安装

ext3grep官方网站:http://code.google.com/p/ext3grep/

网盘下载:http://pan.baidu.com/s/1i47ZPsT

所需的系统相关包如下:

[root@localhost ~]#rpm -qa | grep e2fsprogs

e2fsprogs-libs-1.39-8.el5

e2fsprogs-1.39-8.el5

e2fsprogs-devel-1.39-8.el5

以上三个都必须安装,不然后面的安装会出现问题。

下面进入编译安装阶段,过程如下:

[root@localhost /opt]# tar zxvf ext3grep-0.10.2.tar.gz
[root@localhost ext3grep-0.10.2]# ./configure
[root@localhost ext3grep-0.10.2]# make
[root@localhost ext3grep-0.10.2]# make install
[root@localhost ext3grep-0.10.2]# ext3grep -v
Running ext3grep version 0.10.2

默认的ext3grep命令放在/usr/local/bin目录下,请通过“ext3grep --help”获取详细使用帮助。

实战ext3grep恢复文件
模拟数据误删环境

下面通过一个模拟环境,详细介绍使用ext3grep恢复数据文件的过程:

[root@localhost ~]# mkdir /disk
[root@localhost ~]# mkdir /mydata
[root@localhost ~]# cd /mydata
[root@localhost mydata]# dd if=/dev/zero of=/mydata/disk1 count=102400
[root@localhost mydata]#mkfs.ext3 /mydata/disk1

[root@localhost mydata]#mount -o loop /mydata/disk1  /disk
[root@localhost mydata]#cd /disk
[root@localhost disk]# cp /etc/profile /disk
[root@localhost disk]# cp /boot/initramfs-2.6.32-220.el6.i686.img /disk
[root@localhost disk]#echo"I am archy" > ext3grep.txt
[root@localhost disk]#mkdir /disk/ext3grep
[root@localhost disk]#cp /etc/hosts /disk/ext3grep
[root@localhost disk]#ls -al

[root@localhost disk]#md5sum profile
[root@localhost disk]#md5sum initramfs-2.6.32-220.el6.i686.img
[root@localhost disk]#md5sum ext3grep.txt
[root@localhost disk]#rm -rf /disk/*
[root@localhost /opt]# umount /disk
查询数据恢复信息

执行如下命令,查询需要恢复的数据信息:

[root@localhost /opt]# ext3grep /mydata/disk1  --ls --inode 2

这条命令主要用于扫描当前文件系统下所有的信息,包括存在的和已删除的文件,其中含有D标识的就是文件已被删除。通过以下命令可以获取文件要恢复的路径信息:

[root@localhost /opt]# ext3grep /mydata/disk1  --dump-names

恢复删除数据

单个文件恢复命令如下:

[root@localhost /opt]# ext3grep /mydata/disk1  --restore-file  ext3grep.txt

恢复的文件存放在/opt/RESTORED_FILES目录下。

恢复所有已删除数据的命令如下:

[root@localhost /opt]# ext3grep /mydata/disk1  --reatore-all

ext3文件系统反删除利器-ext3grep的更多相关文章

  1. 高性能Linux服务器 第6章 ext3文件系统反删除利器ext3grep extundelete工具恢复rm -rf 误删除的文件

    高性能Linux服务器 第6章  ext3文件系统反删除利器ext3grep  extundelete工具恢复rm -rf 误删除的文件 只能用于ext3文件系统!!!!!!!高俊峰(高性能Linux ...

  2. ext3文件系统反删除利器ext3grep应用实战

    推荐:10年技术力作:<高性能Linuxserver构建实战Ⅱ>全网发行,附试读章节和全书实例源代码下载! 一."rm –rf"带来的困惑 国外一份非常著名的Linux ...

  3. ext3文件系统,reiserfs,xfs,jsf那种性能好点

    ext2 是一个旧的 Linux 档桉系统,没有日志功能. 启用的时间通常需要很久.目前有许多 日志型态 的档桉系统可以以更快的速度及更好的效率完成系统启用和检查. ext3 为 ext2 的日志版, ...

  4. 恢复Ext3下被删除的文件(转)

    恢复Ext3下被删除的文件(转) 前言 下面是这个教程将教你如何在Ext3的文件系统中恢复被rm掉的文件. 删除文件 假设我们有一个文件名叫 ‘test.txt’ $ls -il test.txt 1 ...

  5. EXT2/EXT3文件系统(二)

         整理自<鸟哥的Linux私房菜>,整理者:华科小涛http://www.cnblogs.com/hust-ghtao/ 接EXT2/EXT3文件系统(一):   2.3 Supe ...

  6. EXT3文件系统误删除导致文件系统中的邮件丢失恢复方法

    一.故障描述 由8块盘组成的RAID5, 上层是EXT3文件系统,由于误删除导致文件系统中的邮件丢失 二.镜像磁盘为防止数据恢复过程中由于误操作对原始磁盘造成二次破坏, 使用winhex软件为每块磁盘 ...

  7. Linux学习之CentOS(十八)-----恢复Ext3下被删除的文件与 使用grep恢复被删文件内容(转)

    前言 下面是这个教程将教你如何在Ext3的文件系统中恢复被rm掉的文件. 删除文件 假设我们有一个文件名叫 'test.txt' $ls -il test.txt 15 -rw-rw-r– 2 roo ...

  8. 恢复Ext3下被删除的文件

    下面是这个教程将教你如何在Ext3的文件系统中恢复被rm掉的文件. 假设我们有一个文件名叫 ‘test.txt’  $ls -il test.txt 15 -rw-rw-r– 2 root root ...

  9. 深入理解Linux内核-Ext2和Ext3文件系统

    Ext2的一般特征: 1.创建Ext2文件系统时,系统管理员可以根据预期的文件平均长度来选择最佳块大小(从1024B-4096B).来减少文件碎片2.创建Ext2文件系统时,系统管理员可以根据在给定大 ...

随机推荐

  1. PHP 系列:PHP Web 开发基础

    PHP是动态类型的Web开发的脚本语言,PHP以页面文件作为加载和运行的单元,PHP现在有了Composer作为开发包管理. 1.使用Composer管理依赖 自从.NET开发用了Nuget管理程序集 ...

  2. sql脚本比较大,sqlserver 无法导入,就用cmd命令执行

    osql简单用法:用来将本地脚本执行,适合sql脚本比较大点的情况,执行起来比较方便 1 osql -S serverIP -U sa -P 123 -i C:\script.sql serverIP ...

  3. Coding the Matrix (2):向量空间

    1. 线性组合 概念很简单: 当然,这里向量前面的系数都是标量. 2. Span 向量v1,v2,.... ,vn的所有线性组合构成的集合,称为v1,v2,... ,vn的张成(span).向量v1, ...

  4. Sublime-jQueryDocs

    Package Control Messages======================== jQueryDocs---------- This package shows a selected ...

  5. C/C++语言算法题——替换

    [问题] Description 给定一个有限长度的非负整数序列.一次操作是指从第一个元素开始,依次把数列中的每个数替换为它右边比它小的数的个数.对该数列不断进行这个操作.总有一个时刻该数列将不再发生 ...

  6. 使用GitHub进行团队合作

    原文: Team Collaboration With GitHub GitHub已经成为的一切开放源码软件的基石.开发人员喜欢它,基于它进行协作,并不断通过它开发令人惊叹的项目.除了​​代码托管,G ...

  7. Jquery-获取同级标签prev,prevAll,next,nextAll

    1.next([expr]): 获取指定元素的下一个同级元素(注意是下一个同级元素哦) 参数可有可无,参数设定遵循jquery选择器规则 <!DOCTYPE html> <html& ...

  8. Java设计模式-抽象工厂模式(Abstract Factory )

    工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这 ...

  9. A.3 词法分析器

    包 lexer 是词法分析器的代码的扩展.类 Tag 定义了各个词法单元对应的常量. 1: package lexer; 2: public class Tag { 3: public final s ...

  10. Linux文件目录权限浅谈

    1.基本权限三种(1)r (read) 读 针对目录,有读(r)权限就代表能对此目录有列表功能,就是可以执行ls命令进行查看,另外还有cp的功能.针对文件,有读(r)权限就代表能对此文件有阅读功能,可 ...