经过 extundelete 尝试数据恢复node
下文以 CentOS 6.8 ext4 文件系统为实验环境,工具为 extundelete。nginx
在实际线上恢复过程当中,切勿将 extundelete 安装到误删的文件所在磁盘,这样会有必定概率将须要恢复的数据完全覆盖。建议加装一块磁盘将 extundelete 安装到此磁盘,再作如下操做。由于后续恢复删除文件的操做要执行 umount 设备分区的操做,因此此方法并不适合删除系统盘分区中的文件。
环境准备:c++
在本地虚拟机进行测试为了方便检测我临时增长了一块10G 的硬盘分红2个分区 分区格式为ext4 /dev/sdb1 挂载到/data 目录,里面用于存放数据 /dev/sdb2 挂载到/e2sf 目录 ,用于存放安装软件
1.检查系统依赖包ide
[root@caosm03 e2fs]# rpm -qa | grep e2fsprogs e2fsprogs-libs-1.41.12-23.el6.x86_64 e2fsprogs-1.41.12-23.el6.x86_64 [root@caosm03 e2fs]# yum install -y e2fsprogs-dev
2.下载软件进行安装工具
[root@caosm03 e2fs]# yum install -y e2fsprogs-devel [root@caosm03 e2fs]# tar -jxvf extundelete-0.2.4.tar.bz2 # 对文件进行解压 [root@caosm03 extundelete-0.2.4]# ./configure && make && make install # 对文件进行安装 提示错误信息: configure: error: in `/e2fs/extundelete-0.2.4': configure: error: C++ compiler cannot create executables 经查看是因为缺乏C++ 依赖包进行安装 [root@caosm03 extundelete-0.2.4]# yum install gcc-c++ -y # 安装便可 [root@caosm03 extundelete-0.2.4]# ./configure && make && make install #从新编译安装
3.效验文件安装是否正确测试
[root@caosm03 extundelete-0.2.4]# extundelete -v extundelete version 0.2.4 libext2fs version 1.41.12 Processor is little endian.
4.对须要进行测试的文件进行MD5值效验rest
[root@caosm03 data]# md5sum 222.log 24deb4b21ea98cb75f1b21a73e2dc283 222.log
5.对里面的日志进行部分删除进行测试,查看前须要卸载该磁盘分区日志
[root@caosm03 data]# umount /dev/sdb1 umount: /data: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) [root@caosm03 ~]#fuser -km /dev/sdb1 [root@caosm03 ~]# umount /dev/sdb1
6.通常一个分区挂载到一个目录下时,这个”根”目录的 inode 值为 2。咱们为了查看根目录全部文件,因此查看分区 inode 为 2的这个部分执行:code
[root@caosm03 ~]# extundelete /dev/sdb1 --inode 2 NOTICE: Extended attributes are not restored. Loading filesystem metadata ... 41 groups loaded. ... File name | Inode number | Deleted status . 2 .. 2 lost+found 11 222.log 14 .222.log.swp 12 Deleted 222.log~ 13 Deleted .111.log.swx 2021094190 Deleted GET93396120171028_nginx232.log~ 14 Deleted
7.恢复进行测试ip
[root@caosm03 e2fs]# extundelete --restore-all /dev/sdb1 NOTICE: Extended attributes are not restored. Loading filesystem metadata ... 41 groups loaded. Loading journal descriptors ... 81 descriptors loaded. Searching for recoverable inodes in directory / ... 3 recoverable inodes found. Looking through the directory structure for deleted files ... Block 33792 is allocated
8.检验是否恢复成功
默认被删文件会恢复到当前目录下的 RECOVERED_FILES 目录中去 [root@caosm03 RECOVERED_FILES]# ll total 5344 -rw-r--r-- 1 root root 5471632 Dec 15 12:31 222.log~ [root@caosm03 RECOVERED_FILES]# md5sum 222.log~ 24deb4b21ea98cb75f1b21a73e2dc283 222.log~ 经对比 这个MD5效验值与以前的md5效验值一致,说明文件已经被完全恢复。