http://jingyan.baidu.com/article/3c48dd3493221de10be35889.html
http://www.111cn.net/sys/linux/47629.htm
http://jingyan.baidu.com/article/2f9b480d6c2bcd41cb6cc223.html
extundelete 这是一个开源的恢复删除软件
我用的是Centos系统,在安装extundelete之前需要安装e2fsprogs,e2fsprogs-libs,e2fsprogs-devel。
这里用:yum install e2fsprogs e2fsprogs-libs e2fsprogs-devel 来完成安装。
然后下载这个安装包文件:
直接下载上面的zip压缩包
编译安装extundelete:
unzip extundelete-0.2.4.zip
cd extundelete-0.2.4
./configure
make && make install
然后进入 /usr/local/bin/ 这个目录
extundelete的用法,可以通过help查看详细!
extundelete --help
extundelete恢复数据的过程:
在数据被误删除后,第一时间要做的就是卸载被删除数据所在的分区,如果是根分区的数据遭到误删,就需要将系统进入单用户模式,并且将根分区以只读模式挂载。这样做的原因很简单,因为将文件删除后,仅仅是将文件的inode节点中的扇区指针清零,实际文件还储存在磁盘上,如果磁盘继续以读写模式挂载,这些已删除的文件的数据块就可能被操作系统重新分配出去,在这些数据库被新的数据覆盖后,这些数据就真的丢失了,恢复工具也无力回天。所以!以只读模式挂载磁盘可以尽量降低数据库中数据被覆盖的风险,以提高恢复数据成功的比例。
卸载硬盘:
df 查看硬盘
umount -f /dev/xvdb1
如果
卸载磁盘分区,并通过执行extundelete命令查询/dev/sdb1分区可恢复的数据信息:
通过这个信息查看删除的文件
# extundelete /dev/xvdb1 --inode 2
File name | Inode number | Deleted status . 2 .. 2 www 1597441 www 1613825 Deleted mysql 2203649 Deleted mysqlbak161104 2326529 Deleted zibmaoOW 12 Deleted web.zip 12 Deleted mysqldata.zip 13 Deleted
extundelete /dev/xvdb1 --restore-file web.zip 恢复一个文件
[root@iZ28t1z0sm5Z bin]# extundelete /dev/xvdb1 --restore-file web.zip
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 400 groups loaded.
Loading journal descriptors ... 25454 descriptors loaded.
Successfully restored file web.zip
恢复成功,但必须还要执行一句代码: md5sum RECOVERED_FILES/web.zip
[root@iZ28t1z0sm5Z data]# ls RECOVERED_FILES/
web.zip
[root@iZ28t1z0sm5Z data]# md5sum RECOVERED_FILES/web.zip
9065b2eff2fce8aebb44a1c2a8f83b19 RECOVERED_FILES/web.zip
[root@iZ28t1z0sm5Z data]extundelete /dev/xvdb1 --restore-file mysqldata.zip
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 400 groups loaded.
Loading journal descriptors ... 25454 descriptors loaded.
Successfully restored file mysqldata.zip
[root@iZ28t1z0sm5Z data]# md5sum RECOVERED_FILES/mysqldata.zip
以上恢复成功两个文件
恢复单个文件:
extundelete /dev/xvdb1 --restore-file mysqldata.zip
恢复单个目录:
extundelete /dev/sdb1 --restore-directory /mongodb
恢复所有误删文件:
extundelete /dev/sdb1 --restore-all
如果没有看明白:
安装软件 extundelete
[root@xuegod63 ~]# tar jxvf extundelete-0.2.4.tar.bz2
[root@xuegod63 ~]# cd extundelete-0.2.4
[root@xuegod63 extundelete-0.2.4]# ./configure
Configuring extundelete 0.2.4
configure: error: Can't find ext2fs library #报错
[root@xuegod63 ~]# mount /dev/cdrom /mnt/
[root@xuegod63 extundelete-0.2.4]# rpm -ivh /mnt/Packages/e2fsprogs-devel-1.41.12-11.el6.x86_64.rpm
[root@xuegod63 extundelete-0.2.4]#
[root@xuegod63 extundelete-0.2.4]# ./configure #检查安装环境并生成Makefile
[root@xuegod63 extundelete-0.2.4]# make #编译
[root@xuegod63 extundelete-0.2.4]# make install #安装
查找博客:http://www.cnblogs.com/jjzd/p/5785851.html
安装e2fsprogs-devel-1.41.12-14.el6.x86_64.rpm
开始恢复:
方法1:
通过inode结点查看被删除的文件名字:
[root@xuegod63 ~]# mkdir test
[root@xuegod63 ~]# cd test/
[root@localhost ~]# extundelete /dev/sda4 --inode 2
。。。
lost+found 11
passwd 12 Deleted
hosts 13 Deleted
a 8193 Deleted
a.txt 15 Deleted
通过inode节点来恢复:
[root@localhost ~]# extundelete /dev/sda4 --restore-inode 12
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 16 groups loaded.
Loading journal descriptors ... 32 descriptors loaded.
[root@localhost ~]# ls RECOVERED_FILES/ #恢复成功
file.12
[root@xuegod63 test]# diff /etc/passwd /root/test/RECOVERED_FILES/file.12
方法二,通过文件名恢复
方法二,通过文件名恢复
恢复某个文件:
[root@xuegod63 test]# rm -rf RECOVERED_FILES/
[root@localhost ~]# extundelete /dev/sda4 --restore-file passwd
恢复某个目录,如目录a下的所有文件:
[root@localhost ~]# extundelete /dev/sda4 --restore-directory a #恢复目录a ,不用
恢复所有的文件
[root@localhost ~]# extundelete /dev/sda4 --restore-all
使用心得:
空目录或空文件恢复不成功。