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

推荐: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官方网站:,可以从这里下载最新的ext3grep版本。这里下载的是ext3grep-0.10.1.tar.gz。

所需的系统相关包:

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

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

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

[root@localhost/opt]#tarzxvfext3grep-0.10.1.tar.gz[root@localhostext3grep-0.10.1]#./configure[root@localhostext3grep-0.10.1]#make[root@localhostext3grep-0.10.1]#makeinstall[root@localhostext3grep-0.10.1]#ext3grep-vRunningext3grepversion0.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@localhostmydata]#ddif=/dev/zeroof=/mydata/disk1count=102400#模拟磁盘分#区,创建一个空设备102400+0recordsin102400+0recordsout52428800bytes(52MB)copied,1.20597seconds,43.5MB/s[root@localhostmydata]#mkfs.ext3/mydata/disk1#将空设备格式化为ext3格式[root@localhostmydata]#mount-oloop/mydata/disk1/disk#挂载设备到/disk目录下[root@localhostmydata]#cd/disk/[root@localhostdisk]#cp/etc/profile/disk#复制文件到模拟磁盘分区[root@localhostdisk]#cp/boot/initrd-2.6.18-164.11.1.el5xen.img/disk[root@localhostdisk]#echo”ext3greptest”>ext3grep.txt[root@localhostdisk]#mkdir/disk/ext3grep[root@localhostdisk]#cp/etc/hosts/disk/ext3grep[root@localhostdisk]#pwd/disk[root@localhostdisk]#ls-al总计2512drwxr-xr-x4rootroot409604-0716:46.drwxr-xr-x31rootroot409604-0716:45..drwxr-xr-x2rootroot409604-0716:46ext3grep-rw-r–r–1rootroot1404-0716:31ext3grep.txt-rw——-1rootroot253599104-0716:30initrd-2.6.18-164.11.1.el5xen.imgdrwx——2rootroot409604-0716:33lost+found-rw-r–r–1rootroot102904-0716:30profile[root@localhostdisk]#md5sumprofile#获取文件校验码a6e82d979bb95919082d9aceddf56c39profile[root@localhostdisk]#md5suminitrd-2.6.18-164.11.1.el5xen.img031226080e00d7f312b1f95454e5a1ffinitrd-2.6.18-164.11.1.el5xen.img[root@localhostdisk]#md5sumext3grep.txt5afe55495cdb666daad667e1cd797dcbext3grep.txt[root@localhostdisk]#rm-rf/disk/*#模拟误删除数据操作[root@localhostdisk]#ls(2).卸载磁盘分区执行以下命令卸载磁盘分区:[root@localhostdisk]#cd/opt#切换到/opt目录下[root@localhost/opt]#umount/disk#卸载模拟磁盘分区(3).查询恢复数据信息执行如下命令,查询需要恢复的数据信息:[root@localhost/opt]#ext3grep/mydata/disk1–ls–inode2

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

业精于勤,荒于嬉;行成于思,毁于随。

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

相关文章:

你感兴趣的文章:

标签云: