系统版本:CentOS 6.5    软件包版本:extundelete-0.2.4.tar.gz


extundelete是基于Linux的一个数据恢复工具,它通过分析文件系统的日志,解析出所有文件的inode信息,从而可以恢复Linux下主流的ext3,ext4文件系统下被误删除的文件


一、安装extundelete工具

1.解压软件包
wKiom1cXbSrDXPi_AABhsp6bEAg198.jpg

#注意:解压的时候会报错,需要安装“e2fsprogs-devel”相应软件包wKioL1cXbvODa8HLAAAap6J_7s8193.jpg


2.配置安装

wKiom1cXbrOTCae1AACD8XvbmTc594.jpg


二、准备测试环境

1.创建测试目录

wKioL1cXctCjlkgmAACJH72cVzQ336.jpg

如图所示,创建“/data”挂载点,将/dev/sdb1分区挂载到该目录


2.在“/data”目录下添加一些测试目录及其文件

wKioL1cXdVGCJsF0AABb5W--1hw111.jpg

注意:这里创建了一个空目录“b”,和一个空文件“file.txt”,方便稍后测试


3.删除文件和目录

wKioL1cXdhGyb_FHAAAkRwBfYGo010.jpg


三、恢复数据

在数据被误删除后,第一时间要做的就是卸载被删除数据所在的分区,如果是根分区的数据遭到误删,就需要将系统进入单用户模式,并且将根分区以只读模式挂载。这是因为文件删除后,仅仅是将文件的inode节点中的扇区指针清零,实际文件还储存在磁盘上,如果磁盘继续以读写模式挂载,这些已删除的文件的数据块就可能被操作系统重新分配出去,在这些数据库被新的数据覆盖后,这些数据就真的丢失了,恢复工具也无力回天。所以!以只读模式挂载磁盘可以尽量降低数据库中数据被覆盖的风险,以提高恢复数据成功的比例

1.卸载要恢复的分区或以只读方式挂载该分区

wKiom1cXdyKh03N_AAARX3tDksM217.jpg

wKioL1cXd-Tg0mk7AAAU8W3hL_0062.jpg


我们来使用“extundelete”工具来查看一下要恢复的分区wKiom1cXiLqRvJwMAAAXKL34oMM428.jpg
wKioL1cXiYrQ0v8oAAAlFhgYZBs697.jpg


2.恢复数据

方法一:通过 inode 进行恢复

首先创建一个目录“/data_rec”用于存放恢复后的数据,然后进入该目录进行恢复,恢复的数据会在该目录下自动生成的“RECOVERED_FILES”目录下

wKioL1cXfY7zw6xqAACSRHBVeDg653.jpg

将恢复后的数据与原数据使用“diff”命令做一下对比,看看文件内的数据是否与删除前一致,如果没有提示表示内容完全一样

wKiom1cXfaDjOWpeAAAsKQAo-oY708.jpg


方法二:通过文件名进行恢复

wKioL1cXf1ajVXgMAADBM2M2VvI656.jpg


方法三:通过目录进行恢复

wKiom1cXf42Rv5M4AAC-fLnF1dw529.jpg


方法四:恢复所有文件

wKiom1cXhSPBisrvAADWMveSiAE105.jpg

#注:恢复全部数据后,我们发现并没有之前创建的空目录“b”和空文件“file.txt”,所以证明空目录及其空文件是不能恢复的,这里显示的“passwd”文件是很早以前删除的,并不是此次实验文件


方法五:通过指定的时间进行恢复,恢复到当前时间之前

wKioL1cXhozzkjUDAAE-LALPZwU713.jpg

#注:如果要恢复某个时间之后的就用“after”参数


生产环境下,还是少用“rm”命令为好,如需修改相关服务配置文件,最好先将要修改的配置文件备份后再操作,以免发生不必要的麻烦