You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们
导航

Linux实例数据恢复

最近更新时间2022.04.27 21:04:01

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

使用云服务器时,如果因为误操作导致数据丢失,且数据丢失后未对磁盘进行写入操作,您可以尝试参考本文使用开源工具 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