感谢支持
我们一直在努力

CentOS 6.3下部署文件恢复神器extundelete

最近看到群里提到如何恢复Linux下ext4误删的文件,之前听说过ext3分区恢复工具ext3grep,但是恢复ext4一直没有概念,而且目前线上的系统分区格式都是ext4,SO网上找到了一款叫extundelete的文件恢复工具,该工具最给力的一点就是支持ext3/ext4双格式分区恢复,对我们运维攻城狮算是一款神器级别的软件,这里整理了如下文档,供大家参考。

相关阅读:Linux下恢复ext3/ext4文件系统中删除的文件 http://www.linuxidc.com/Linux/2011-08/40666.htm

虚拟机:        VMWare Workstation 9.0.2
操作系统:      CentOS6.3 x64
extundelete:  extundelete-0.2.4

一.模拟环境
1.首先关闭SELINUX
# setenforce 0
# vi /etc/sysconfig/selinux
—————
SELINUX=disabled
—————

2.在虚拟机上创建一个2G的磁盘

3.进入系统,创建一个2G的主分区
# fdisk /dev/sdb
———————
n+p+1+回车+回车+w
———————

4.使分区无需重启就能生效
# partx -a /dev/sdb

5.格式化为ext4分区并挂载
# mkfs.ext4 /dev/sdb1
# mkdir /data
# mount /dev/sdb1 /data
注: 在实际线上恢复过程中,切勿将extundelete安装到你误删的文件所在硬盘,这样会有一定几率将需要恢复的数据彻底覆盖。
建议加装一块硬盘将extundelete安装到此硬盘,再做以下操作。

二.extundelete安装
1.安装依赖包
# yum install e2fsprogs* -y

2.下载并安装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

3.验证是否安装成功
# cd /usr/local/extundelete/bin
# ./extundelete -v
———————
extundelete version 0.2.4
libext2fs version 1.41.12
Processor is little endian.
———————

4.设置环境变量
# echo “PATH=/usr/local/extundelete/bin:$PATH” >> /etc/profile
# echo “export PATH” >> /etc/profile
# source /etc/profile

5.上传一些图片,安装包等文件到/data目录
# cd /data
# yum install lrzsz -y
# rz
————-
本地文件…..
————-
# ls
——————
lost+found  mysql-5.6.10.tar.gz  nginx.conf  pic.jpg
——————

6.全部删除
# rm -rf *

7.查看被删除文件
1).查看前需卸载该磁盘分区
# cd ~
# umount /dev/sdb1

2).查看文件
注:一般一个分区挂载到一个目录下时,这个”根”目录的inode值为2
我们为了查看根目录所有文件,所以查看分区inode为2的这个部分
# extundelete /dev/sdb1 –inode 2
——————————–
…..

File name                                      | Inode number | Deleted status
.                                                2
..                                                2
lost+found                                        11            Deleted
mysql-5.6.10.tar.gz                              12            Deleted
nginx.conf                                        13            Deleted
pic.jpg                                          14            Deleted
——————————–
注:标记为”Deleted”的文件则是被删除的文件

8.恢复指定的文件
注: 默认被删文件会恢复到当前目录下的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结合使用,在进行恢复时非常有用,可以过滤掉那太旧的文件,减小恢复压力。

11.检验是否恢复成功
# md5sum RECOVERED_FILES/mysql-5.6.10.tar.gz
————————————
9dcee911fb4bc7e977a6b63f4d3ffa63  RECOVERED_FILES/mysql-5.6.10.tar.gz
————————————
上传刚才误删的mysql安装包
# rz

# md5sum mysql-5.6.10.tar.gz
———————————
9dcee911fb4bc7e977a6b63f4d3ffa63  mysql-5.6.10.tar.gz
———————————
MD5值相同,恢复成功。。。

———–大功告成————-

更多CentOS相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14

赞(0) 打赏
转载请注明出处:服务器评测 » CentOS 6.3下部署文件恢复神器extundelete
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏