恢复原理

Linux文件被分成两个部分:用户数据和元数据。用户数据,即文件实际数据;而元数据则是文件的附加属性,如文件名、大小、inode号等信息。实际上,元数据中的 inode 号才是文件的唯一标识而非文件名。通过rm命名误删数据后,只是删除了元数据,同时标记实际数据块位置可写入。所以,在未被重新写入的前提下,通过inode号是可以恢复误删文件的。
rm原理.jpg

恢复前提

  • 删除的是文件而不是目录
  • 文件删除后,未对磁盘进行覆盖写入操作

恢复工具

extundelete,工具免费,使用方法不难掌握

恢复步骤

第一步、将误删数据的系统盘做一个快照
第二步、按量付费方式开启一台新的实例,最低配置即可
第三步、在新开通的实例上安装extundelete工具
第四步、将之前的快照磁盘以数据盘的形式添加至新实例,添加选项如图

添加磁盘.jpg

第五步、通过extundelete工具恢复数据
第六步、将恢复出的数据拷贝至原实例
第七步、释放按量付费资源

问:为什么要开临时实例而不是直接在源实例恢复呢?

答:安装extundelete工具及其运行环境时,会对磁盘重新写入,可能会导致误删数据无法恢复。