虚拟化数据恢复—重写文件系统导致Hyper-V虚拟机无法使用的数据恢复

虚拟化数据恢复环境:
一台服务器上部署的Hyper-V虚拟化平台,虚拟机的硬盘文件和配置文件放在一台某品牌MD3200存储中。该存储中有一组由4块硬盘组建的raid5磁盘阵列,还有一块大容量硬盘存放虚拟机数据文件的备份。

虚拟化故障:
MD3200存储中虚拟机数据文件丢失,导致Hyper-V服务瘫痪,虚拟机无法使用。

虚拟化故障分析:
1、检测MD3200存储是否存在物理故障,经过检测没有发现存储存在任何物理故障,硬盘均正常工作。
2、检查操作系统,未发现出错进程,排除因操作系统问题导致的数据丢失。
3、分析丢失数据硬盘的文件系统,文件系统打开正常,不符合病毒破坏的表现。使用多款杀毒软件检测无病毒。分析丢失数据硬盘的文件系统,发现文件系统的元文件创建时间(也就是文件系统的创建时间)与数据丢失的时间刚好一样。这种表现通常意味着文件系统被人为重写,即分区被格式化了。
4、检查系统日志,发现数据丢失时间之前以及数据丢失当天的系统日志已被清空,审核日志和服务日志却未清空。这种情况应该是人为操作,格式化分区的操作只记录在系统日志中,这与人为破坏的表现相符。
5、尝试恢复系统日志。分析硬盘底层数据,发现硬盘底层中需要恢复的系统日志已被新的日志记录覆盖,无法恢复。
6、分析操作系统中的所有分区。发现只有存储中两个分区的文件系统被重新写入文件系统。格式化两个分区需要两个独立的过程,这种针对性的操作基本上是人为的。

重现格式化操作:
1、通过在分区上“右键”,选择“格式化”按钮,可以格式化选中的分区。
2、在开始菜单“运行”中输入“cmd”命令进入到命令行模式,然后使用FORMAT命令,可以格式化指定分区。
3、创建一个bat文件,在文件中写入格式化的命令,然后运行bat文件可以格式化指定分区。
4、因为有两个独立的文件系统的数据丢失,故上述的流程可能被执行了多次。应该因人为操作导致。

虚拟化数据恢复方案:
根据前期的故障分析,北亚企安数据恢复工程师团队敲定数据恢复方案:
1、备份数据,对丢失数据的硬盘做全盘备份。
2、分析硬盘底层数据,重组RAID阵列。
3、分析重组的阵列,看能否找到原始文件索引项及对应的数据区。
4、核对查找到的文件索引项是否符合用户丢失的数据,并核对相应的数据区有无破坏。
5、将扫描到的文件索引项碎片拼接成一个完整的目录结构。
6、根据拼接好的目录结构去底层恢复对应的数据,并检查数据的正确性。
7、核对数据没问题后恢复所有数据。

虚拟化数据恢复方案实施:
1、将Dell M3200存储中所有的硬盘编号后取出,由硬件工程师检测硬盘是否存在物理故障。经过检测没有发现有硬盘存在物理故障。以只读方式将每块硬盘做扇区级全盘镜像。镜像完成后将所有磁盘按照编号还原到原存储中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
备份硬盘数据:

2、基于镜像文件分析所有硬盘上的底层数据。通过分析获取重组RAID5阵列的raid相关信息,如:条带大小,条带走向等。根据获取到的raid信息重组RAID。
重组RAID:

打开硬盘阵列:

3、分析硬盘底层数据,发现硬盘底层中还残留着许多原始文件系统的目录项及文件索引。经过核对发现这些文件索引指向的数据都是用户丢失的文件内容。北亚企安数据恢复工程师编写一个提取文件索引项的小程序,扫描整个硬盘中所有存在的文件索引项,提取所有文件的文件索引项。
4、分析所有扫描到的文件索引项,发现这些索引项都是不连续的,大多以16K或8K对齐的。正常情况下的文件索引项是连续的,大小为固定的1K,每个文件索引项对应一个文件或目录。而扫描出来的这些不连续且不完整的文件索引项无法正常索引到文件的内容。因此需要对扫描出来的文件索引项做加工处理。
在扫描出来的文件索引项中搜索” .VHD”,能找到一个” .VHD”的文件记录,然后将这段文件索引项提取出来。查看这段提取出来的文件索引项中是否有指向下一段文件索引项的记录或者是H20属性,如果有则根据文件索引项中的特征去匹配下一段文件索引项,如果没有则跳过这段文件索引项。
根据上述方法基本能查到大多数的文件索引项片段。而缺失的文件索引项片段则有可能被破坏了。可以考虑从备份盘中去查找缺失的文件索引项片段,因此可以搜索到大部分的文件索引项。
文件索引项截图:

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

6、将拼接好的目录结构替换现有文件系统中的目录结构,使用工具修改部分校验值,再使用专业工具解释这个目录结构即可看到原有丢失的数据了。
解释出来的目录结构:

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

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

9、在用户方验证所有虚拟机没问题后,将所有数据拷贝至用户方准备好的服务器中。通过导入的方式将虚拟机导入到用户方的Hyper-V环境中,但是在导入的过程中出现错误。

经过查找资料和分析,确定出错原因是导入的方法不正确,需要以下面的方式导入虚拟机。

重新导入后没有报错。

尝试启动所有虚拟机,所有虚拟机启动都没问题。

10、用户方对所有虚拟机中的数据进行检测后,确认恢复出来的数据完整有效,认可数据恢复结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3280660.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

10046 事件学习

一、作用 sql执行过程中所有动作和等待的追踪。 二、等级 level:12 包含常用的分析信息:基本信息绑定变量等待事件; level:1 基本信息; level:4 基本信息绑定变量 level:8 基本信息绑定变…

字体表绘制的理解

下载字体到项目根目录下,我们通过一些在写预览本地字体的网站,简单看一下 通过图片不难看出阴书与原文的对应关系,接下来通过程序去完成这一过程,通过 fonttools 处理 ttf,然后获取字体和文字对应的 xml 文件 下面简单…

Java并发(十五)Java并发工具类

CountDownLatch 字面意思为 递减计数锁。用于控制一个线程等待多个线程。 **CountDownLatch**** 维护一个计数器 count,表示需要等待的事件数量。**countDown 方法递减计数器,表示有一个事件已经发生。调用 await 方法的线程会一直阻塞直到计数器为零&a…

工作纪实54-git使用ssh方式

很多居家的小伙伴要重新clone项目,但是忘记了密码,最恶心的是idea还会自动帮你记录密码,如果输错了,会很恶心,使用ssh则不会;还有一个好处就是,集团的密码一般都是几个月更新一次,ss…

【IEEE出版】第五届大数据、人工智能与软件工程国际研讨会(ICBASE 2024,9月20-22)

第五届大数据、人工智能与软件工程国际研讨会(ICBASE 2024)将于2024年09月20-22日在中国温州隆重举行。 会议主要围绕大数据、人工智能与软件工程等研究领域展开讨论。会议旨在为从事大数据、人工智能与软件工程研究的专家学者、工程技术人员、技术研发人…

人工智能学习笔记 - 初级篇Ⅱ - 图形可视化 - 第12节: 绘制带彩色标记的散点图

微信公众号:御风研墨 关注可了解更多。问题或建议,请公众号留言 文章目录 绘制带彩色标记的散点图应用背景准备工作操作步骤工作原理补充说明最后 绘制带彩色标记的散点图 应用背景 散点图是数据可视化中常用的图表类型之一,它可以用来展示…

IDEA某个项目被同事提交的代码导致不能进入Debug了,不是IDEA的问题。千万要避坑!

刚开始我发现突然不能进入debug了,打上去后就立马边灰了,我以为是我IDEA的问题,后来我换了其他项目都能正常进入debug. 而且后续,这个项目的其他同事也都不能进入debug了。 我就怀疑是项目中有人提交了代码导致的。 后来查…

【网络】网络AP热点:技术、应用与未来展望

引言 在数字化时代,无线网络已成为连接世界的重要基础设施。无线接入点(Access Point,简称AP)作为无线网络的核心组成部分,扮演着至关重要的角色。它们不仅提供了无线信号的覆盖,还通过桥接、中继等功能&a…

浅谈线程组插件之bzm - Arrivals Thread Group

浅谈线程组插件之bzm - Arrivals Thread Group bzm - Arrivals Thread Group 是 JMeter 中的一个高级插件,由 BlazeMeter 提供,旨在为性能测试提供更灵活、更贴近实际场景的负载生成方式。与传统的线程组不同,Arrivals Thread Group 通过控制…

【漏洞复现】360天擎 - 未授权与sql注入

漏洞描述 360天擎 - 未授权与sql注入 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息…

Matplotlib面积图绘制秘籍:让你的数据‘膨胀’起来,但不吹泡泡哦!

1. 引言 嘿,数据迷们!想不想让你的数据‘活’起来,跳一曲色彩斑斓的面积舞?Matplotlib面积图,不只是数字的堆砌,它是故事的讲述者,让复杂数据变得一目了然,还带点小幽默。快来一探究…

NASA:水瓶座官方发布第 3 级辅助雷诺海面温度标准映射图像降序 7 天数据 V5.0

Aquarius Official Release Level 3 Ancillary Reynolds Sea Surface Temperature Standard Mapped Image 7-Day Data V5.0 水瓶座官方发布第 3 级辅助雷诺海面温度标准映射图像降序 7 天数据 V5.0 AQUARIUS_L3_ANCILLARY_SST_SMID_7DAY_V5 简介 水瓶座 3 级辅助海面温度 (…

网上租房系统2024

网上租房系统2024(代码论文ppt),编号:sp007 代码经过修正,确保可以运行,下载地址在文末 技术栈: springbottvuemysql 展示: 下载地址: CSDN现在上传有问题,有兴趣的朋友先收藏.正常了贴上下载地址 备注: 专业承接各种程序java,c,c,python,cuda,AI 运行有问题请私信我,私…

使用 WeNet 训练 AISHELL-1 模型,看这篇就够了!!!!!!新手少走一个月弯路。

使用 WeNet 训练 AISHELL-1 模型的详细入门指南 在这篇文章中,我们将通过 WeNet 框架详细介绍如何训练 AISHELL-1 数据集的语音识别模型。我们将逐步解释各个阶段的操作,适合初学者入门。 文章目录 使用 WeNet 训练 AISHELL-1 模型的详细入门指南1. 环…

SFP, SFP+,QSFP光模块封装类型学习

前言: 本文是自己对SFP, SFP,QSFP光模块封装类型的学习记录,所有的资料都搜集字引用链接里的博客内容,本文更多的是自己的学习笔记记录所以可能会有一些理解错误,请更多的参考引用链接里的信息来源。 引用: 认识SFP/SF…

学习c语言第十八天(指针笔试题)

一维数组 字符数组 char*p"abcdef" p里面放的是a元素的地址 二维数组 指针笔试题 第一题 2 5 第二题 第三题 第四题 第五题 第六题 10 5 第七题 at 第八题 POINT ER ST EW

HTTP协议详解(一)

协议 为了使数据在网络上从源头到达目的,网络通信的参与方必须遵循相同的规则,这套规则称为协议,它最终体现为在网络上传输的数据包的格式。 一、HTTP 协议介绍 HTTP(Hyper Text Transfer Protocol): 全…

AlmaLinux9安装中文语言包_zabbix没有中文语言包

更新你的系统包,如果系统最新可以忽略: sudo dnf update安装中文简体语言包 sudo yum install langpacks-zh_CN安装繁体中文包 sudo dnf install kde-l10n-Chinese-traditional安装完成后重启系统,以确保语言设置生效 设置系统为简体中文&…

【JavaSE-线程安全问题-死锁详解】

🌈个人主页:努力学编程’ ⛅个人推荐: c语言从初阶到进阶 JavaEE详解 数据结构 ⚡学好数据结构,刷题刻不容缓:点击一起刷题 🌙心灵鸡汤:总有人要赢,为什么不能是我呢 🌈…

HarmonyOs~应用程序框架进阶之 UIAbility组件间的交互

我们要知道一个概念 一个应用可以有多个模块 每个模块又可以有多个UIAbility 每个UIAbility又可以有多个页面 如何创建同模块的UIAbility 首先我们创建好项目之后 就是有一个UIAbility组件存在的 那么如果我想要在同模块创建一个UIAbility怎么创建 想要创建的模块-->&g…