extundelete实现Linux下文件/文件夹数据恢复! 注意:centos 7.0 以上不适用
extundelete是基于Linux的一个数据恢复工具,它通过分析文件系统的日志,解析出所有文件的inode信息,从而可以恢复Linux下主流的ext3,ext4文件系统下被误删除的文件。
我用的是Centos系统,在安装extundelete之前需要安装e2fsprogs,e2fsprogs-libs,e2fsprogs-devel。
这里用:yum install e2fsprogs e2fsprogs-libs e2fsprogs-devel 来完成安装。
下载并安装extundelete
# wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
# tar -jxvf extundelete-0.2.4.tar.bz2
# cd extundelete-0.2.4
# ./configure –prefix=/usr/local/extundelete
# make && make install
验证是否安装成功
# cd /usr/local/extundelete/bin
# ./extundelete -v
———————
extundelete version 0.2.4
libext2fs version 1.41.12
Processor is little endian.
———————
umount /dev/sdb1 (要找回数据分区)
卸载磁盘分区,并通过执行extundelete命令查询/dev/sdb1分区可恢复的数据信息:
# extundelete /dev/sdb1 –inode 2
根据输出信息,标记为Deleted状态的是已经删除的文件或目录。同时还可以看到已删除文件的inode值,接下来就可以恢复文件了。
.恢复指定的文件
注: 默认被删文件会恢复到当前目录下的RECOVERED_FILES目录中去
# extundelete –restore-file pic.jpg /dev/sdb1
# cd RECOVERED_FILES/
# ll
—————-
-rw-r–r– 1 root root 52592 8月 13 07:18 pic.jpg
—————-
9.完全恢复设备上文件
# extundelete –restore-all /dev/sdb1
# ll
———————————–
总用量 34464
-rw-r–r– 1 root root 35174149 8月 13 07:24 mysql-5.6.10.tar.gz
-rw-r–r– 1 root root 4551 8月 13 07:24 nginx.conf
-rw-r–r– 1 root root 52592 8月 13 07:18 pic.jpg
-rw-r–r– 1 root root 52592 8月 13 07:24 pic.jpg.v1
———————————–
注:这里完全恢复并不会把之前恢复的pic.jpg文件覆盖掉,而是重命名为pic.jpg.v1
10.恢复指定的时间点后被删文件
1).指定一个时间点
# date -d “Sep 4 03:09:13 2013” +%s
——————
1378235353
——————
2).恢复这个时间点后的文件
# extundelete –restore-all –after “1378235353” /dev/sdb1
——————–
……….
——————–
注:如果要恢之前的就用before参数。extundelete命令与after结合使用,在进行恢复时非常有用,可以过滤掉那太旧的文件,减小恢复压力。
恢复单个文件:
extundelete /dev/sdb1 –restore-file passwd
会在当前目录下生成一个RECOVERED_FILES目录,里面保存已经恢复的文件。
恢复单个目录:
extundelete /dev/sdb1 –restore-directory /mongodb
恢复所有误删文件:
extundelete /dev/sdb1 –restore-all
extundelete还可以实现恢复某个时间段的数据。可以通过“–after”和“–before”参数实现!