You need to enable JavaScript to run this app.
导航

Linux实例数据恢复

最近更新时间2023.12.07 17:11:01

首次发布时间2022.04.27 21:04:01

本文以恢复数据盘文件为例,介绍如何使用开源工具Extundelete快速恢复Linux实例中的误删除文件并进行校验。

操作场景

使用云服务器时,如果因为误操作导致数据丢失,且数据丢失后未对磁盘进行写入操作,您可以参考本文使用Extundelete快速恢复被误删除的数据。Extundelete可以恢复主流文件系统ext3及ext4下被误删除的文件,但具体恢复程度与删除后是否被写覆盖等多种因素有关。

说明

修复数据前,请先对分区丢失的数据盘进行备份。建议您定期备份数据,以提高数据安全性。

前提条件

软件版本

  • 云服务器操作系统: CentOS 7.9
  • Extundelete:Extundelete 0.2.4

操作步骤

步骤一:安装Extundelete

  1. 执行以下命令,安装Extundelete所需依赖。
    yum -y install e2fsprogs e2fsprogs-libs e2fsprogs-devel bzip2 gcc-c++

  2. 下载Extundelete安装包

  3. 将下载好的安装包上传至云服务器,本文以上传至/home下为例。详细操作请参考本地数据上传

  4. 执行以下命令,解压Extundelete安装包。
    tar -xvif /home/extundelete-0.2.4.tar.bz2

  5. 执行以下命令,编译安装Extundelete。

    cd extundelete-0.2.4
    ./configure
    make && make install
    
  6. 执行/usr/local/bin/extundelete -v查看安装情况,返回如下回显即为安装成功。
    image.png

步骤二:数据恢复测试

  1. 模拟数据误删环境。
    1. 对数据盘进行分区格式化,本文设置文件系统为ext3。

    2. 依次执行以下命令,新建挂载点并挂载分区。本文以将分区 /dev/vdb1 挂载至 /test 为例。

      mkdir /test
      mount /dev/vdb1 /test
      df -TH
      

      返回如下回显信息即为挂载成功。
      alt

    3. 执行以下命令,在挂载点创建测试文件 test.txt。

      cd /test
      vim test.txt    
      
    4. 执行以下命令,记录 test.txt 文件md5值。md5值可用于校验删除前和恢复后的两个文件。
      md5sum test.txt
      返回回显信息如下所示:
      alt

    5. 执行ls -i test.txt,查看文件所在inode,用于后续恢复文件使用。
      本文中 test.txt 文件inode为25。

    6. 执行以下命令,删除 test.txt 文件。
      rm -rf test.txt

  2. 恢复被删除的 test.txt 文件。
    1. 执行以下命令,umount 数据盘。
    cd ~
    umount /test
    
    1. 执行extundelete /dev/vdb1 --restore-inode <删除文件所在的inode号码>命令,恢复被删除文件。
  3. 验证被删除文件是否成功恢复。
    1. 恢复被删除文件后,文件存储在RECOVERED_FILES目录下。执行ls RECOVERED_FILES/查看目录中存在的文件。
    2. 检验被恢复文件。执行md5sum RECOVERED_FILES/<已恢复文件名>查看文件md5值,与删除前文件 md5值保持一致即为恢复成功。
      alt