本文档主要以CentOS7操作系统为例,介绍如何使用开源工具Extundelete快速恢复被误删除掉的数据。
在Linux下,基于开源的数据恢复工具有很多,常见的有debugfs、R-Linux、ext3grep、extundelete等,比较常用的有ext3grep和extundelete,这两个工具的恢复原理基本一样,只是extundelete功能更加强大。使用阿里云的云服务器时,如果您不小心误删除数据,并且Linux系统也没有与Windows系统下回收站类似的功能,您可以方便快速安装extundelete工具。
extundelete工具能够利用inode信息结合日志去查询该inode所在的block位置,以此查找和恢复所需的数据。该工具最给力的一点就是支持ext3/ext4双格式分区恢复,基于整个磁盘的恢复功能较为强大。
在数据被误删除后,首先要做的是卸载被删除数据所在的磁盘或磁盘分区。因为将文件删除后,仅仅是将文件的inode节点中的扇区指针清零,实际文件还存储在磁盘上,如果磁盘以读写模式挂载,这些已删除的文件的数据块就可能被系统重新分配出去,在这些数据块被新的数据覆盖后,误删除的数据就无法恢复。所以,以只读模式挂载磁盘可以尽量降低数据块中数据被覆盖的风险,提高恢复数据成功的几率。
说明 在实际线上恢复过程中,切勿将extundelete安装到您误删的文件所在硬盘,这样会有一定几率将需要恢复的数据彻底覆盖,切记操作前做好快照备份。
本教程适用的对象是:
需安装的软件及版本:e2fsprogs-devel、e2fsprogs、gcc-c++、make(编译器等)、Extundelete-0.2.4。
说明 extundelete需要libext2fs版本1.39或更高版本来运行,但是对于ext4支持,请确保您有e2fsprogs版本1.41或更新版本(可以通过运行命令dumpe2fs
并记录其输出的版本)。
以上版本是写文档时的软件版本。您下载的版本可能与此不同。
使用开源工具Extundelete快速恢复被误删的数据的操作步骤如下:
运行以下命令,部署extundelete工具:
wget http://zy-res.oss-cn-hangzhou.aliyuncs.com/server/extundelete-0.2.4.tar.bz2
yum -y install bzip2 e2fsprogs-devel e2fsprogs gcc-c++ make #安装相关依赖和库tar -xvjf extundelete-0.2.4.tar.bz2cd extundelete-0.2.4 #进入程序目录./configure #如下图表示安装成功
make && make install
这个时候会出现src目录,该目录下有个extundelete可执行文件以及相应路径,其实默认文件安装路径为usr/local/bin,下面模拟删除后恢复数据的操作就在usr/local/bin目录下进行。
完成以下操作,使用extundelete模拟数据误删除后恢复的过程:
test
。
mkdir /zhuyun #新建zhuyun目录这个时候会在执行命令的同级目录下出现RECOVERED_FILES目录。
通过md5sum命令查看恢复后RECOVERED_FILES文件的md5值。
md5sum RECOVERED_FILES
查看删除前的hello和恢复后的RECOVERED_FILES两个文件的md5值是否一致,如果一致,则数据恢复成功。
原文地址: https://help.aliyun.com/document_detail/51371.html