Hyper-V虚拟机文件丢失的数据恢复全过程

简介:
   由于MD3200存储中虚拟机的数据文件丢失,导致整个Hyper-V服务瘫痪,虚拟机无法使用,故障环境为Windows Server 2012服务器,系统中部署了Hyper-V虚拟机环境,虚拟机的硬盘文件和配置文件放在朝阳区某托管中心托管的DELL MD3200存储中(注:硬盘600G*4,4T*1)。MD3200存储是由4块600G硬盘组成的阵列,用作存储虚拟机的数据文件。单块4T硬盘用作虚拟机数据文件的备份。
故障:
   由于MD3200存储中虚拟机的数据文件丢失,导致整个Hyper-V服务瘫痪,虚拟机无法使用。以如下流程进行数据检测:
1、对MD3200存储服务器进行物理检测,发现存储并未出现物理故障,涉事硬盘均正常工作
2、检查操作系统:工作正常中,未发现出错进程,排除因操作系统BUG导致的数据丢失。
3、分析丢失数据硬盘的文件系统:打开正常,不符合病毒破坏的表现特征,同时经杀毒软件检测无病毒。再仔细分析硬盘的文件系统,发现此文件系统的元文件创建时间为11月28日,表明文件系统的创建时间为11月28日,与数据丢失的时间相吻合。通常这种故障表明:文件系统被人为重写了,即分区被格式化了。
4、检查系统日志:发现系统日志11月28号之前以及当天的系统日志已被清空,审核日志和服务日志却并未清空。通常情况下,此操作应该由人为导致。而格式化分区的操作只记录在系统日志中,这与上述人为破坏的表现相符。
5、尝试恢复系统日志:仔细分析硬盘底层数据,发现硬盘底层中需要恢复的系统日志已被新的日志记录覆盖,无法恢复。
6、分析操作系统中的所有分区:发现只有MD3200存储中的两个分区的文件系统被重新写入文件系统了。通常情况下,对两个分区的格式化需要有两个独立的过程,因此这种针对性的操作应该由人为导致。

解决方案
1、备份用户数据
   由于数据全部都放Dell M3200存储中,因此只需要恢复Dell M3200存储中的数据即可。将Dell M3200存储中所有的硬盘标上编号,然后后从存储中拔下来交给硬件部门检测硬盘是否存在物理故障。经检测没问题后对每块硬盘做全盘镜像,使用专用工具(Winhex)将硬盘中所有扇区镜像到一块备份硬盘中。
如下图1.:使用专业工具备份所有硬盘数据
 
2、重组磁盘阵列
   镜像完所RAID 5的相关信息,如:条带大小,条带走向等信息。根据这些信息即可重组有硬盘后,分析每块硬盘上的数据。分析后发现4块600G硬盘做了一个RAID5,另一块4T硬盘是做为数据备份使用。仔细分析4块600G硬盘中的数据结构,可以得出这个此RAID。
如下图2.:使用专业工具重组RAID
 
如下图3.:是用专业工具打开硬盘阵列的情况
 


3、扫描旧的文件索引项

   仔细分析硬盘底层数据,发现硬盘底层中还残留着许多以前文件系统的目录项及文件索引。经过仔细核对发现这些文件索引指向的数据都是用户丢失的文件内容。但由于整个硬盘太大,人工去搜索文件索引会很慢,因此编写一个提取文件索引项的小程序,对整个硬盘中所有存在的文件索引项做扫描,提取所有文件的文件索引项。


4、分析扫描到文件索引项
   对扫描到的所有文件索引项做详细的分析,发现其索引项都是不连续的,并且大多都是以16K或8K对齐的。正常情况下的文件索引项是连续的,大小为固定的1K,每个文件索引项对应一个文件或目录。而扫描出来的这些不连续,并且不完整的文件索引项是无法正常索引到文件的内容。因此需要对扫描出来的文件索引项做加工处理。在扫描出来的文件索引项中搜索” .VHD”,能找到一个” .VHD”的文件记录。然后将这个片连续的文件索引项提取出来。接着再查看这段提取出来的文件索引项中是否有指向下一段文件索引项的记录或者是H20属性。如果有则根据文件索引项中的特征去匹配下一段文件索引项,如果没有则跳过这段文件索引项。根据以上方法基本能查到大多数的文件索引项片段。而缺失的文件索引项片段有可能被破坏了,但是可以从数据备份盘中去查找缺失的文件索引项片段,因此基本可以搜索到大部分的文件索引项。
如下图4.:是文件索引项截图
 

5、将文件索引项组成完整的目录结构
   根据上述方法找到所有的文件索引项,然后根据文件索引项的编号将其拼接成整个目录项结构。以下是搜索到的部分文件索引项,由于有部分文件索引项被破坏,因此只能找到大部分文件索引项,但这些文件索引项已经足以拼接成整个目录结构了。
如下图5.:是扫描到的文件索引项碎片 


6:修复文件系统
   将重建好的目录结构和现有文件系统中的目录结构进行替换,然后使用专业工具修改部分校验值。再使用专业的工具解释这个目录结构即可看到原有丢失的数据了。
如下图6.:是用专业工具解释出来的目录结构


如下图7
 
   为了确定数据是否正确,将其中一个最新的VHD文件恢复出来。然后将其拷贝到一台支持附加VHD的服务器上,尝试附加此VHD。结果附加成功,检查VHD中最新的数据是否完整。一切检查完整后将所有数据恢复到一块硬盘中。
如下图8:是恢复出来的所有虚拟机数据文件
 

7、验证所有数据
   在一台测试服务器上搭建Hyper-V的环境,将恢复的虚拟机文件连接到这台服务器上。然后通过导入虚拟机的方式,将恢复的数据都迁移到新的Hyper-V环境。然后让客户来验证所有虚拟机是否完整。
如下图9.:是虚拟机导入的过程 


如下图10. 


8、迁移所有数据
   在客户验证所有虚拟机没问题后,将所有数据拷贝至客户服务器中。然后利用导入的方式将虚拟机导入到客户的Hyper-V环境中,需要以下面的方式导入虚拟机,导入后没有报错,尝试启动所有虚拟机,所有虚拟机启动都没问题
 
 
 





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要安装Hyper-V虚拟机,你可以按照以下步骤进行操作: 1. 首先,确保你的系统符合要求。Hyper-V要求使用64位的Windows 10专业版、企业版或教育版,并且需要64位处理器支持二级地址转换(SLAT)和VM监视器模式扩展(Intel CPU上的VT-c)。此外,至少需要4GB内存。请注意,家庭版不支持Hyper-V。 2. 启用Hyper-V。你可以使用PowerShell或CMD来启用Hyper-V,或者通过控制面板来启用。如果你选择使用PowerShell,可以运行以下命令:`Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All`。如果你选择使用CMD和DISM,可以运行以下命令:`dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All`。 3. 打开Hyper-V管理器。一旦Hyper-V被启用,你可以在开始菜单中搜索并打开Hyper-V管理器。 4. 进行基本设置。在Hyper-V管理器中,你可以进行一些基本设置。例如,你可以设置虚拟硬盘和虚拟机的默认位置,配置网络,以及配置检查点等。详细的设置步骤可以参考引用中的内容。 5. 创建虚拟机。在Hyper-V管理器中,你可以选择快速创建或自定义创建虚拟机。快速创建适用于快速配置虚拟机,而自定义创建则允许你根据自己的需求进行更详细的配置。根据你的需求选择相应的方法来创建虚拟机。具体的创建步骤可以参考引用[2]中的内容。 请注意,虽然Hyper-V在Windows 10中是内置的,但它适用于服务器应用,并不适合用于底层驱动或与内核紧密联系的应用。对于这些应用,目前不建议使用Hyper-V。<span class="em">1</span><span class="em">2</span><span class="em">3</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值