在新 VM 中使用包含快照的 VHD

在新 VM 中使用包含快照的 VHD

我希望我们遇到了一个可恢复的问题。我们的驱动器崩溃了,结果 VM 和 VHD 的导出/备份在中途失败了(当然没有人检查日志)。所以没有干净的方法可以解决这个问题。我们丢失的是 Hyper-V 程序及其配置文件。

这是在 Windows 11(最新版本)上。它们都在同一台计算机上,我们丢失的是计算机上的 SSD。损坏的驱动器是 C: 驱动器,因此我们丢失了所有 Hyper-V 安装、注册表、AppData 文件夹等。

我们还有 VM 和 VHD 文件。还有数据。它们位于 D: 驱动器上。我们需要的是虚拟驱动器。如果我们找回 VM,那就太好了。但我可以创建一个新的 VM。不过我需要 VHD 上的数据。

VM 有 10 个左右的检查点,因此在 Hyper-V 中,检查点树是一系列下降的节点,每个节点都有一个子节点。而这个子节点又有一个子节点。而且...

我创建了一个新的虚拟机并将其指向 VHDX 文件。没有运气。启动时它说找不到可启动媒体。以下是我拥有的文件:

血管内皮细胞

在此处输入图片描述

虚拟机

在此处输入图片描述

快照

在此处输入图片描述

有办法恢复吗?我不太了解 Hyper-V,但我猜 VHD 文件集合确实有驱动器映像。但要告诉 Hyper-V 使用所有这些 - 怎么做?

答案1

现在数据很有可能被破坏了。VHDX 是所有 AVHDX 文件的根目录。如果连接到它并尝试从它启动,哪怕只修改了一个位,那么整个 AVHDX 子树都会被破坏。虽然存在第三方数据恢复工具,但你无法预测它们的运气会如何。

将来,您应该尝试重新安装 Hyper-V 并运行虚拟机导入,指向 VM 的根文件夹。导入可以确定快照状态并自动拼凑快照树。尽管我怀疑您是否能够恢复任何内容,但您至少应该尝试使用您现在拥有的内容。它至少应该能够检测到 VM。它将尝试连接到它确定为活动 VM 的任何内容,而该 VM 又将引用最近活动的 AVHDX。然后,它将沿着其父树一直回到根 VHDX。如果您足够幸运,连接和启动尝试没有修改任何内容,那么一切都会正常进行。然后,您可以删除所有快照,Hyper-V 将自行合并和展平所有内容。

如果您想尝试从组成 VHDX 和 AVHDX 文件重建完整的 VHDX,则需要运行每个 AVHDX获取 VHD. 每个人都会有一个父路径财产: 选择了 ParentPath 的 Get-VHD 输出

找到没有其他 AVHDX 将其作为父级的 AVHDX。这将是链中的最后一个。反向工作,直到您以相反的顺序了解整个链。您可能可以按修改日期工作,但 ParentPath 是一个更可靠的指标。一旦合并,您就无法返回,因此第一次就做对了。合并命令不会检查您正在处理的磁盘文件是否有自己的子文件。如果它有父级,它会将其合并到该父级中,从而有效地使它拥有的任何子级成为孤儿。您可以使用以下方式重新设置孤儿 VHDX 的父级设置VHD,但这只会增加额外的繁忙工作,并且您必须知道新的父母是谁,否则您将不得不一次检查一个可用的磁盘文件,直到找到正确的文件为止。

了解家长令后,使用合并-VHD,从无子 AVHDX 开始。

Merge-VHD -Path childless.avhdx

示例合并-VHD

如果成功,这将自动删除合并的子 AVHDX。继续执行列表中的下一个。

在这种情况下,我怀疑最终合并将失败,因为 VHDX 可能已被修改并且其子项不再对齐。但是,不尝试你就不会知道。

相关内容