ext3 文件系统反删除利器 ext3grep

linux系统管理 struggling 1204次浏览 2个评论

u=1967175490,2777270626&fm=21&gp=0
一,简介

ext3grep是一个开源的ext3文件系统反删除工具,在ext3grep出现之前,数据被删除后,通过常规手段恢复基本上不可能的,虽然debugfs命令可以对ext2文件系统做一些恢复,但对ext3文件系统就不能无力了。ext3是一个日志文件系统,ext3grep正是通过分析ext3文件系统的日志信息来恢复被删除的文件和数据。ext3grep是通过文件系统的root inode(根目录的inode一般为2)来获取当前文件系统下所有文件的信息,包括文件的文件名和inode。然后利用inode信息结合日志去查询该inode所在的block位置,包括直接块,间接块等信息。最后利用dd命令将这些信息备份出来,从而恢复数据文件。

二,安装

ext3grep可以官方网站下载,https://code.google.com/p/ext3grep/,也可以从http://pkgs.org/此处下载!

三,恢复文件实战

1.首先创建一个空设备,模拟磁盘分区

<code>
[root@sta ~]# cd /data/
[root@sta data]# ls
dev  logs  www
[root@sta data]# dd  if=/dev/zero of=/data/disk count=102400
记录了102400+0 的读入
记录了102400+0 的写出
52428800字节(52 MB)已复制,0.507047 秒,103 MB/秒

[root@sta data]# mkfs.ext3 disk     #格式化为ext3文件系统
mke2fs 1.41.12 (17-May-2010)
disk is not a block special device.
无论如何也要继续? (y,n) y
文件系统标签=
操作系统:Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
12824 inodes, 51200 blocks
2560 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=52428800
7 block groups
8192 blocks per group, 8192 fragments per group
1832 inodes per group
Superblock backups stored on blocks: 
	8193, 24577, 40961

正在写入inode表: 完成                            
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
</code>

2,建立一个挂载点并挂载设备

<code>
[root@sta data]# cd 
[root@sta ~]# mkdir /disk      #建立一个挂载点
[root@sta ~]# cd -
/data
[root@sta data]# mount -o loop /data/disk /disk/   #挂载设备
[root@sta data]# cd  /disk/
[root@sta disk]# ls
lost+found
[root@sta disk]# cp  /etc/profile  .   #复制进来一个文件  
[root@sta disk]# ls
lost+found  profile
[root@sta disk]# mkdir ext3    
[root@sta disk]# cp /etc/hosts  ext3/   #再复制一个文件
[root@sta disk]# ls
ext3  lost+found  profile
[root@sta disk]# md5sum profile 
b03d04febd006168fc73f5d52562ba51  profile
[root@sta disk]# rm -rf /disk/*          #模拟误删数据
[root@sta disk]# ls
</code>

3,卸载磁盘分区

<code>
[root@sta disk]# cd /tmp/    #切换到其他目录下
[root@sta tmp]# umount /disk/     #卸载模拟磁盘分区
 </code>

4,查询恢复数据信息

QQ图片20151206200340

通过“–dump-names ”选项可以查看要恢复文件的路径信息:

dump

5,使用“–restore-file + 文件名 ”恢复单个文件

one

6,通过“–restore-inode +inode值”选项指定文件对应的inode值来恢复文件

inode

7,通过“–restore-all”选项恢复所有已经删除的文件

all

8,验证文件

[root@sta RESTORED_FILES]# md5sum profile #与上面的相同,说明文件恢复成功
b03d04febd006168fc73f5d52562ba51 profile



DevOps-田飞雨 》》转载请注明源地址
喜欢 (0)or分享 (0)
发表我的评论
取消评论
*

表情 贴图 加粗 链接 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 谢谢分享!
    xyz軟體2015-12-09 13:28 回复
  2. 对这些还真不懂的
    郑州SEO优化2015-12-09 16:02 回复