CDN加速

文档中心 云服务器 常见问题 Linux操作运维类 3. Linux误删文件后恢复数据

3. Linux误删文件后恢复数据

更新时间:2021-02-22 17:23:51

Linux误删文件后恢复数据

在Linux下,基于开源的数据恢复工具有很多,常见的有Debugfs、R-Linux、Ext3grep、Extundelete等,比较常用的有Ext3grep和Extundelete,这两个工具的恢复原理基本一样,只是Extundelete功能更加强大。

Extundelete是基于linux的开源数据恢复软件。在使用云服务器时,如果您不小心误删除数据,并且Linux系统也没有与Windows系统下回收站类似的功能,您可以方便快速安装此工具。

Extundelete能够利用inode信息结合日志去查询该inode所在的block位置,以此来查找和恢复所需的数据,该工具的亮点是支持ext3/ext4双格式分区恢复,基于整个磁盘的恢复功能较为强大。

说明

本文以CentOS7操作系统为例,介绍如何使用开源工具Extundelete快速恢复被误删除掉的数据。

注意事项

在数据被误删除后,第一时间要做的是卸载被删除数据所在的磁盘或磁盘分区。因为将文件删除后,仅仅是将文件的inode结点中的扇区指针清零,实际文件还存储在磁盘上,如果磁盘以读写模式挂载,这些已删除的文件的数据块就可能被操作系统重新分配出去,在这些数据块被新的数据覆盖后,这些数据就真的丢失了,恢复工具也回力无天。所以,以只读模式挂载磁盘可以尽量降低数据块中数据被覆盖的风险,以提高恢复数据成功的几率。

注意:在实际线上恢复过程中,切勿将Extundelete安装到您误删的文件所在硬盘,这样会有一定几率将需要恢复的数据彻底覆盖,切记操作前做好快照备份。

准备工具

需安装的软件及版本:E2fsprogs-devel E2fsprogs gcc-c++ make(编译器等)Extundelete-0.2.4。

注意:Extundelete需要Libext2fs 1.39版本或更高版本来运行,但是对于ext4支持,请确保您有E2fsprogs 1.41版本或更新版本(可以通过运行命令“dumpe2fs”并记录其输出的版本)。

部署Extundelete工具。

wget https://downloads.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
yum -y install bzip2 e2fsprogs-devel e2fsprogs gcc-c++ make //安装相关依赖和库
tar -xvjf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4 //进入程序目录
./configure 

如下图表示安装成功。
数据解读|网络攻击防不住 游戏怎么玩得爽?

make && make install
此时会出现src目录,下面有个extundelete可执行文件以及相应路径,默认文件安装在usr/local/bin下。
数据解读|网络攻击防不住 游戏怎么玩得爽?

使用方法

  1. 记录文件MD5值,md5sum命令用于生成和校验删除前和恢复后俩个文件的MD5值。
    md5sum hello
    数据解读|网络攻击防不住 游戏怎么玩得爽?

  2. 模拟删除hello文件。
    rm -rf hello

  3. 卸载被删除数据所在的数据盘(此处以/dev/vdb1为例)。
    umount /dev/vdb1
    任何的文件恢复工具,在使用前,均要将要恢复的分区卸载或挂载为只读,防止数据被覆盖使用。

  4. 使用Extundelete工具恢复文件。
    extundelete --inode 2 /dev/vdb1
    为查找某i节点中的内容,使用2则说明为整个分区搜索,如果需要进入目录搜索,只须要指定目录I节点即可。这是可以看到删除的文件名和inode。
    数据解读|网络攻击防不住 游戏怎么玩得爽?

    /usr/local/bin/extundelete --restore-inode 12 /dev/vdb1 //恢复删除的文件
    这个时候会在执行命令的同级目录下出现RECOVERED_FILES目录,查看是否恢复。
    数据解读|网络攻击防不住 游戏怎么玩得爽?

    通过MD5值查看,前后俩个文件,一样说明恢复成功。

    注意:
    –restore-inode 12 //按指定的I节点恢复
    –extundelete –restore-all //全部恢复