返回首页

网站导航
资讯首页> 网站公告 >产品资讯 > Linux系统下误删的虚拟机数据如何恢复?

    Linux系统下误删的虚拟机数据如何恢复?

    产品资讯2018年08月02日
    分享

      Linux虚拟机被误删数据应该怎么恢复?可能很多的朋友都有遇到过这样的问题,因为是虚拟机,与普通的电脑有一定的不同,没有进行分区,另外电脑没有光驱,虚拟机系统好像也不认usb口,所以处理起来可能会遇到一定的麻烦。这里河姆渡小编为您介绍一下Linux系统下被误删的数据恢复方法。


    Linux系统下误删的虚拟机数据如何恢复?


        一、虚拟机故障环境描述
      
      客户的物理机器操作系统为Linux系统,文件系统为EXT4文件系统。其上的KVM虚拟机被删除,每台虚拟机包含一个qcow2格式的磁盘文件,和一个大小约为1.2T的raw格式的磁盘文件,主要需恢复raw格式的磁盘文件。客户已自行备份。
      
      虚拟机1:主数据库服务器
      
      虚拟磁盘:10G系统盘(qcow2)+1.2T数据盘(raw,主要恢复)
      
      文件系统:EXT4
      
      主要数据:MySQL数据库
      
      虚拟机2:备份数据库服务器
      
      虚拟磁盘:10G系统盘(qcow2)+1.2T数据盘(raw,主要恢复)
      
      文件系统:EXT4
      
      主要数据:MySQL数据库
      
      虚拟机3:代码服务器
      
      虚拟机盘:10G系统盘(qcow2)+1.2T数据盘(raw,主要恢复)
      
      文件系统:EXT4
      
      主要数据:程序代码
      
      二、虚拟机数据恢复过程
      
      1、分析EXT4文件系统,定位被删除虚拟机磁盘文件的节点位置;
      
      2、获取磁盘文件残留的索引信息;
      
      3、校验残留索引信息的正确性,修复破坏不严重的索引;
      

      图为获取的索引等信息:


    Linux系统下误删的虚拟机数据如何恢复?

      
      4、修复完成后,解析残留的各级索引,从虚拟机所在的卷中提取虚拟磁盘文件;
      
      5、根据虚拟磁盘文件的提取情况,获取卷中未被索引到的自由空间;
      
      6、校验提取出的磁盘文件的正确性与完整性;
      
      7、从自由空间中获取有效信息,尝试对虚拟磁盘文件进行修补(如节点,目录项,数据库页等信息)。
      

      图为提取出的自由空间:


    Linux系统下误删的虚拟机数据如何恢复?

      
      三、数据恢复结果
      
      1、由于索引丢失,提取出的虚拟磁盘文件并不完整,针对数据库服务器,数据库文件有丢失的情况,可以从自由空间中获取数据库页去对数据库文件进行修补,但由于部分页所在区域被覆盖占用,只能尽量多的去补页;
      
      2、对于存放程序代码的服务器中的节点和目录项丢失的情况,若节点或目录项有残留,可以尝试去补齐节点和目录项。但发现部分文件的节点和目录项同时丢失,根据节点和目录项之间相关联的特性,这种情况下无法补齐。另根据程序代码文件的特性,不具备一定的规律性,若其数据区丢失,无法补齐。
      
      图为恢复出的部分目录结构:


    Linux系统下误删的虚拟机数据如何恢复?


      四、数据验证
      
      在尽可能的尝试对虚拟磁盘文件及其中的数据库文件修补之后,由客户对数据进行验证。数据有部分丢失,无法恢复,但整体还可以接受,数据恢复有效。

    相关阅读