iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >ext3文件系统反删除利器ext3gre
  • 282
分享到

ext3文件系统反删除利器ext3gre

利器文件系统ext3gre 2023-01-31 07:01:33 282人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

推荐:10年技术力作:《高性能Linux服务器构建实战Ⅱ》全网发行,附试读章节和全书实例×××!一、“rm –rf”带来的困惑国外一份非常著名的linux系统管理员守则中有这么一条“慎用 rm –rf 命令,除非你知道此命令将带来什么后果”

推荐:10年技术力作:《高性能Linux服务器构建实战Ⅱ》全网发行,附试读章节和全书实例×××!

一、“rm –rf”带来的困惑

国外一份非常著名的linux系统管理员守则中有这么一条“慎用 rm –rf 命令,除非你知道此命令将带来什么后果”,可见,这个命令对系统管理员的重要性。在实际的工作中,由此命令带来的误删除数据案例屡见不鲜,很多系统管理员都遇到过或者犯过这样的错误。由于开发人员对命令的不熟悉,或者粗心大意、疏于管理,执行了此命令,数据在一瞬间就被清空了。Linux不具备类似回收站的功能,这就意味着数据丢失。虽然Linux自身提供了恢复数据的机制,但是这个功能基本没用,要恢复数据,通过常规手段是无法完成的,此时,只有找专业的数据恢复公司来恢复数据,这样无疑要付出很大的成本和费用,造成无法估量的的损失。

可见,作为系统管理员,一定要有数据安全意识,数据保护意识,严格遵守相关维护守则,将这种失误带来的损失降低到最低。幸运的是,Linux下提供了一款开源软件恢复误删的数据,利用这个ext3文件系统数据恢复工具ext3grep可以恢复误删除的数据。

二、 ext3grep的安装与使用


ext3grep是一个开源的ext3文件系统反删除工具,在ext3grep出现之前,数据被删除后,通过常规手段恢复基本是不可能的,虽然debugfs命令可以对ext2文件系统做一些恢复,但是对ext3文件系统就无能为力了。ext3是一个日志型文件系统,ext3grep正是通过分析ext3文件系统的日志信息来恢复被删除的文件和数据的。


操作系统环境:Centos release 6.4。

ext3grep版本:ext3grep-0.10.1。

ext3grep官方网站:Http://code.Google.com/p/ext3grep/,可以从这里下载最新的ext3grep版本。这里下载的是ext3grep-0.10.1.tar.gz。


所需的系统相关包:

[root@localhost ~]# rpm -qa |grep e2fsprogs
e2fsprogs-1.41.12-21.el6.x86_64
e2fsprogs-libs-1.41.12-21.el6.x86_64
e2fsprogs-devel-1.41.12-21.el6.x86_64


系统必须要安装e2fsprogs-libs,不然后面ext3grep的安装会出现问题。

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

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

这样,ext3grep就安装完成了,默认的ext3grep命令放在/usr/local/bin目录下。ext3grep的使用非常简单,这里不做介绍,可以通过“ext3grep  --help”获取详细的使用帮助。


三、通过ext3grep恢复误删除的文件与目录


1、数据恢复准则

当发现某个分区的数据被误删除后,要做的第一件事是立刻卸载被误删除文件所在的分区,或者重新以只读方式挂载此分区。

这么做的原因其实很简单:删除一个文件,就是中文件inode节点中的扇区指针清除,同时,释放这些数据对应的数据块,而真实的文件还存留在磁盘分区中,但是这些被删除的文件不一定会一直存留在磁盘中,当这些释放的数据块被操作系统重新分配时,那些被删除的数据就会被覆盖,因此,在数据误删除后,马上卸载文件所在分区可以降低数据块中数据被覆盖的风险,进而提高成功恢复数据的机率。


2、实战ext3grep恢复文件


(1).模拟数据误删除环境

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

[root@localhost /]# mkdir /disk  #建立一个挂载点
[root@localhost /]# cd /mydata
[root@localhost mydata]# dd if=/dev/zero  of=/mydata/disk1  count=102400  #模拟磁盘分
#区,创建一个空设备
102400+0 records in
102400+0 records out
52428800 bytes (52 MB) copied, 1.20597 seconds, 43.5 MB/s
[root@localhost mydata]# mkfs.ext3 /mydata/disk1  #将空设备格式化为ext3格式
[root@localhost mydata]# mount -o loop /mydata/disk1  /disk  #挂载设备到/disk目录下
[root@localhost mydata]# cd /disk/
[root@localhost disk]# cp /etc/profile  /disk           #复制文件到模拟磁盘分区
[root@localhost disk]# cp /boot/initrd-2.6.18-164.11.1.el5xen.img  /disk
[root@localhost disk]# echo "ext3grep  test">ext3grep.txt  
[root@localhost disk]# mkdir  /disk/ext3grep    
[root@localhost disk]# cp /etc/hosts  /disk/ext3grep
[root@localhost disk]# pwd
/disk
[root@localhost disk]# ls -al
总计 2512
drwxr-xr-x  4 root root    4096 04-07 16:46 .
drwxr-xr-x 31 root root    4096 04-07 16:45 ..
drwxr-xr-x  2 root root    4096 04-07 16:46 ext3grep
-rw-r--r--  1 root root      14 04-07 16:31 ext3grep.txt
-rw-------  1 root root 2535991 04-07 16:30 initrd-2.6.18-164.11.1.el5xen.img
drwx------  2 root root    4096 04-07 16:33 lost+found
-rw-r--r--  1 root root    1029 04-07 16:30 profile
[root@localhost disk]# md5sum  profile  #获取文件校验码
a6e82d979bb95919082d9aceddf56c39 profile
[root@localhost disk]# md5sum initrd-2.6.18-164.11.1.el5xen.img   
031226080e00d7f312b1f95454e5a1ff  initrd-2.6.18-164.11.1.el5xen.img
[root@localhost disk]# md5sum  ext3grep.txt
5afe55495cdb666daad667e1cd797dcb  ext3grep.txt
[root@localhost disk]# rm -rf /disk/*  #模拟误删除数据操作
[root@localhost disk]# ls
(2).卸载磁盘分区
执行以下命令卸载磁盘分区:
[root@localhost disk]# cd /opt #切换到/opt目录下
[root@localhost /opt]# umount /disk  #卸载模拟磁盘分区
(3).查询恢复数据信息
执行如下命令,查询需要恢复的数据信息:
[root@localhost /opt]# ext3grep  /mydata/disk1  --ls --inode 2

执行该命令后,ext3grep就开始搜索可以恢复的数据文件信息,输出下图所示。

wKioL1RXRUjTOrjBAAHdjBihnwE745.jpg

“ext3grep  /mydata/disk1  --ls --inode 2”主要用于扫描当前文件系统下所有文件的信息,包括存在的和已经删除的文件,其中含有D标识的就是已被删除的文件,如果不记得被删除的文件的名称,可以通过这种方式来获取要恢复的文件的名称。

通过下面的方式可以获取文件要恢复的路径信息。

[root@localhost /opt]# ext3grep  /mydata/disk1  --dump-names
Running ext3grep version 0.10.1
Number of groups: 7
Minimum / maximum journal block: 447 / 4561
Loading journal descriptors... sorting... done
The oldest inode block that is still in the journal, appears to be from 1270629014 = Wed Apr  7 16:30:14 2010
Number of descriptors in journal: 63; min / max sequence numbers: 2 / 10
Loading disk1.ext3grep.stage2... done
ext3grep
ext3grep.txt
ext3grep/hosts
initrd-2.6.18-164.11.1.el5xen.img
lost+found
profile

(4).恢复单个文件

如果要恢复被删除的某个文件,通过下面方式即可。

[root@localhost /opt]# ext3grep  /mydata/disk1  --restore-file  ext3grep.txt
Running ext3grep version 0.10.1
Number of groups: 7
Minimum / maximum journal block: 447 / 4561
Loading journal descriptors... sorting... done
The oldest inode block that is still in the journal, appears to be from 1270629014 = Wed Apr  7 16:30:14 2010
Number of descriptors in journal: 63; min / max sequence numbers: 2 / 10
Writing output to directory RESTORED_FILES/
Loading disk1.ext3grep.stage2... done
Restoring ext3grep.txt

由上面的输出可知,被删除的文件ext3grep.txt已经成功恢复。那么恢复的数据放到哪里了呢?在这段操作中,在/opt目录下执行ext3grep命令,恢复的数据文件就存放在/opt/ RESTORED_FILES目录下,也就是说ext3grep会在执行恢复命令的当前目录下自动创建一个RESTORED_FILES目录,这个目录专门用于存放恢复的数据。

下面是恢复指定目录下的某个文件的操作:

[root@localhost /opt]# ext3grep  /mydata/disk1  --restore-file  ext3grep/hosts
Running ext3grep version 0.10.1
Number of groups: 7
Minimum / maximum journal block: 447 / 4561
Loading journal descriptors... sorting... done
The oldest inode block that is still in the journal, appears to be from 1270629014 = Wed Apr  7 16:30:14 2010
Number of descriptors in journal: 63; min / max sequence numbers: 2 / 10
Loading disk1.ext3grep.stage2... done
Restoring ext3grep/hosts

这里要注意的是,“--restore-file”后面指定的是恢复文件路径,这个路径应该是文件的相对路径,这里的相对路径指的是相对指定设备的路径,比如,设备/mydata/disk1的挂载点是/disk,而ext3grep.txt文件就在/disk目录下,因此直接指定文件名就可以了。如果要恢复/disk/ext3grep/hosts文件,那么指定的参数应该是“ext3grep/hosts”,也就是上面代码中所指定的形式。

通过“--restore-inode”参数,只需指定文件对应的inode值即可恢复文件,操作如下,其中inode值为12的是profile文件:

[root@localhost RESTORED_FILES]# ext3grep  /mydata/disk1   --restore-inode 12
Running ext3grep version 0.10.1
Number of groups: 7
Minimum / maximum journal block: 447 / 4561
Loading journal descriptors... sorting... done
The oldest inode block that is still in the journal, appears to be from 1270629014 = Wed Apr  7 16:30:14 2010
Number of descriptors in journal: 63; min / max sequence numbers: 2 / 10
Writing output to directory RESTORED_FILES/
Restoring inode.12

下面是进入RESTORED_FILES目录,验证文件是否成功恢复:

[root@localhost /opt]# cd RESTORED_FILES
[root@localhost RESTORED_FILES]# ls
ext3grep  ext3grep.txt  inode.12
[root@localhost RESTORED_FILES]# md5sum ext3grep.txt 
5afe55495cdb666daad667e1cd797dcb  ext3grep.txt
[root@localhost RESTORED_FILES]# md5sum inode.12
a6e82d979bb95919082d9aceddf56c39  inode.12

根据校验结果可知,这个校验码与文件被删除之前的校验码完全一致,因此,通过这个方式恢复出来的文件是完整的。


(5).恢复所有已删除数据

当需要恢复的文件较少时,通过前面介绍的指定文件的方式进行逐个恢复是可行的,但是如果要恢复很多个文件,如1000个以上,还采取逐个指定的方式,效率是非常低下的,此时就要利用ext3grep命令的“--restore-all”参数了,具体操作如下:

[root@localhost /opt]# ext3grep  /mydata/disk1  --restore-all                
Running ext3grep version 0.10.1
Number of groups: 7
Minimum / maximum journal block: 447 / 4561
Loading journal descriptors... sorting... done
The oldest inode block that is still in the journal, appears to be from 1270629014 = Wed Apr  7 16:30:14 2010
Number of descriptors in journal: 63; min / max sequence numbers: 2 / 10
Loading disk1.ext3grep.stage2... done
Restoring ext3grep.txt
Restoring ext3grep/hosts
Restoring initrd-2.6.18-164.11.1.el5xen.img
Restoring profile
[root@localhost /opt]# cd RESTORED_FILES/
[root@localhost RESTORED_FILES]# ls -al
总计 2512
drwxr-xr-x  4 root root    4096 04-07 16:46 .
drwxr-xr-x 31 root root    4096 04-07 16:45 ..
drwxr-xr-x  2 root root    4096 04-07 16:46 ext3grep
-rw-r--r--  1 root root      14 04-07 16:31 ext3grep.txt
-rw-------  1 root root 2535991 04-07 16:30 initrd-2.6.18-164.11.1.el5xen.img
drwx------  2 root root    4096 04-07 16:33 lost+found
-rw-r--r--  1 root root    1029 04-07 16:30 profile

根据这个输出可知,“--restore-all”参数将指定存储设备中可以恢复的文件都恢复出来并放到了RESTORED_FILES目录中。“--restore-all”参数对恢复大量数据文件是非常有用的。


--结束END--

本文标题: ext3文件系统反删除利器ext3gre

本文链接: https://www.lsjlt.com/news/191593.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ext3文件系统反删除利器ext3gre
    推荐:10年技术力作:《高性能Linux服务器构建实战Ⅱ》全网发行,附试读章节和全书实例×××!一、“rm –rf”带来的困惑国外一份非常著名的Linux系统管理员守则中有这么一条“慎用 rm –rf 命令,除非你知道此命令将带来什么后果”...
    99+
    2023-01-31
    利器 文件系统 ext3gre
  • 利用ext3grep恢复ext3文件系统
    在使用linux的过程中,难免会误删除一些文件,可是怎样找回呢?下面介绍一下ext3文件系统的数据恢复。实验环境:CENTOS6.3 /dev/sdb1为数据分区/data,EXT3文件系统。我们已恢复data下的任意文件为例。需要软件:e...
    99+
    2023-01-31
    文件系统 ext3grep
  • 恢复EXT3下被删除的文件
    下面是这个教程将教你如何在Ext3的文件系统中恢复被rm掉的文件。假设我们有一个文件名叫 ‘test.txt’ $ls -il test.txt 15 -rw-rw-r– 2 root root 20 Apr 17 12...
    99+
    2023-06-05
  • Windows读写Ext3文件系统
      1.         安装软件 1)         准备好需安装的软件 2)         欢迎界面 单击Next 3)         选择安装目录 单击Browse可以设置安装的目录,设置完后单击Next 4)      ...
    99+
    2023-01-31
    文件系统 Windows
  • 使用ext3grep恢复ext3文件系统
    测试环境:rhel5.2 x86平台 需要安装的软件为:ext3grep http://code.google.com/p/ext3grep/ 1:下载 wget http://ext3grep.googlecode.com/files/e...
    99+
    2023-01-31
    文件系统 ext3grep
  • ext3grep恢复ext3文件系统下误
    ext3grep恢复ext3文件系统下误删的文件  环境说明:OS:Centos5.2 文件系统为ext3   1.首先模拟一个分区:  mkdir /home/store cd /home/store dd if=/dev/zero o...
    99+
    2023-01-31
    文件系统 ext3grep
  • Linux系统怎么删除文件夹
    这篇文章主要为大家分析了Linux系统怎么删除文件夹的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux系统怎么删除文件夹”的知识吧。使用rmdir删除...
    99+
    2023-06-28
  • win10系统怎么删除顽固文件
    这篇文章主要介绍“win10系统怎么删除顽固文件”,在日常操作中,相信很多人在win10系统怎么删除顽固文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”win10系统怎么删除顽固文件”的疑惑有所帮助!接下来...
    99+
    2023-06-27
  • Linux系统怎么删除乱码文件
    这篇文章主要为大家展示了“Linux系统怎么删除乱码文件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux系统怎么删除乱码文件”这篇文章吧。在Linux系统中上传文件、创建目录或文件可能由...
    99+
    2023-06-28
  • win10系统怎么删除packages文件夹
    本篇内容主要讲解“win10系统怎么删除packages文件夹”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“win10系统怎么删除packages文件夹”吧!删除方法:一、打开开始菜单,在弹出的...
    99+
    2023-06-28
  • Linux系统怎么删除隐藏文件
    小编今天带大家了解Linux系统怎么删除隐藏文件,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“Linux系统怎么删除隐藏文件”的知识...
    99+
    2023-06-28
  • win10系统怎么删除inetpub文件夹
    本文小编为大家详细介绍“win10系统怎么删除inetpub文件夹”,内容详细,步骤清晰,细节处理妥当,希望这篇“win10系统怎么删除inetpub文件夹”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。inetp...
    99+
    2023-06-27
  • win10系统更新文件如何删除
    本篇内容主要讲解“win10系统更新文件如何删除”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“win10系统更新文件如何删除”吧!win10系统更新文件删除方法首先双击桌面此电脑,然后点击“本地...
    99+
    2023-07-01
  • Win7系统怎么删除休眠文件?
    大家电脑上在休眠状态的情况下,依然会造成很多的缓存,伴随着使用时间的提升,电脑上便会发生显著的卡屏,那麼当你在应用计算机的过程中发生问题应当怎么解决呢?下边小编就带著大家一起来实际瞧瞧吧!Win7系统怎么删除休眠文件?最先,按住“win+r...
    99+
    2023-07-12
  • Win10系统如何删除临时文件
    Windows系统在使用过程中经常会产生一些临时垃圾文件。这些文件不仅会占用计算机的存储空间,还会影响计算机的运行速度。那么如何删除这些临时文件呢?让我们和小编一起来看看如何操作。Win10系统如何删除临时文件?点击开始菜单中的设置按钮。打...
    99+
    2023-07-13
  • Linux系统怎么删除指定文件
    Linux系统怎么删除指定文件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。命令格式:      find  指定的文件夹/ -name...
    99+
    2023-06-28
  • win10系统补丁文件怎么删除
    win10系统补丁文件怎么删除?win10系统会在修复的过程中,下载非常多的补丁文件,用于优化和修复系统中的各个问题。但是如果系统之中的补丁文件过多,也会影响我们的正常使用速率,因此我们需要适时对补丁文件进行筛选删除,但是很多小伙伴并不清楚...
    99+
    2023-07-10
  • win10系统无法删除sandbox文件夹怎么办?win10系统中删除sandbox文件夹的方法
    win10系统无法删除sandbox文件夹怎么办?有时候在清理电脑没用的文件时,会遇到一些无法删除或者提示没有权限的文件夹,有时候删除了也会再次自动生成!那要怎么删除这种文件夹下面就让我们一起来看看win10系统删除sa...
    99+
    2023-05-22
    win10 删除系统文件夹 sandbox文件夹 win10强制删除文件夹
  • 利用python批量删除文件
    最近刚刚学了爬虫,爬了一个很有意思的网站——placekitten.com/g/num1/num2,最后是两个数字,在地址栏里输入这个网址,后面两个数字自己改成想要的大小,按回车,将会得到一张猫咪图片,图片大小跟自己输入的两个数值...
    99+
    2023-01-31
    批量 文件 python
  • linux系统中的批量删除文件与空文件删除命令是什么
    本篇内容主要讲解“linux系统中的批量删除文件与空文件删除命令是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux系统中的批量删除文件与空文件删除命令是什么”吧!linux下面删除文...
    99+
    2023-06-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作