阿里云Linux主机误删系统盘文件后如何恢复数据
恢复原理
Linux文件被分成两个部分:用户数据和元数据。用户数据,即文件实际数据;而元数据则是文件的附加属性,如文件名、大小、inode号等信息。实际上,元数据中的 inode 号才是文件的唯一标识而非文件名。通过rm命名误删数据后,只是删除了元数据,同时标记实际数据块位置可写入。所以,在未被重新写入的前提下,通过inode号是可以恢复误删文件的。
恢复前提
- 删除的是文件而不是目录
- 文件删除后,未对磁盘进行覆盖写入操作
恢复工具
extundelete,工具免费,使用方法不难掌握
恢复步骤
第一步、将误删数据的系统盘做一个快照
第二步、按量付费方式开启一台新的实例,最低配置即可
第三步、在新开通的实例上安装extundelete工具
第四步、将之前的快照磁盘以数据盘的形式添加至新实例,添加选项如图
第五步、通过extundelete工具恢复数据
第六步、将恢复出的数据拷贝至原实例
第七步、释放按量付费资源
问:为什么要开临时实例而不是直接在源实例恢复呢?
答:安装extundelete工具及其运行环境时,会对磁盘重新写入,可能会导致误删数据无法恢复。