TL;DR:如果虚拟机当时已关闭,那么通过简单复制文件手动备份 Hyper-V 虚拟机是否安全?
我有一台 Hyper-V 虚拟机,它由一系列检查点组成:基本上,我会安装操作系统并创建一个检查点,然后更改操作系统设置并创建一个检查点,然后安装应用程序并创建一个检查点,等等。每个检查点都是在虚拟机关闭时创建的。不幸的是,在此过程中的某个地方创建了一个错误的检查点,现在阻止了 Hyper-V 管理器的常规导出 - 我收到未指定的错误 0x800040005。机器本身可以启动并正常工作,但我无法导出它。
我的最终目标是将所有检查点合并为一个,丢弃安装历史记录。但在执行任何此类重大更改之前,我希望确保如果出现问题,我可以恢复正常工作的机器。此外,我发现能够自行备份我的机器很有用,而无需使用 Hyper-V 基础架构。
答案1
在我使用原始虚拟机进行一些实验之后,我可以得出结论:是的,只要机器处于关闭状态,就可以通过复制来备份虚拟机,但是有几个注意事项:
- 复制时需要小心全部组成虚拟机的文件。其中包括硬盘映像(
.vhdx
、.avhdx
)、虚拟机描述文件(.vmcx
、.vmgs
、.vmrs
)和快照。每个文件都可以位于不同的目录中。 - 这样的机器可以在不同的计算机上恢复只要它没有损坏像我的一样;如果它是损坏,导入将无法找到快照,并且显然 Hyper-V 不会为您提供恢复功能的选项 - 它要么恢复所有检查点,要么不恢复任何检查点。
但是,我能够按照以下步骤修复损坏的机器:
- 将损坏的机器的所有文件复制到另一台计算机。
- 在另一台计算机上提取它们两次(获取相同文件的两个副本)。
- 使用第一个副本进行导入。导入将无法恢复检查点,但没关系。请注意,许多文件在此过程中被删除。
- 将第二个副本中的文件合并为一个,最好使用 PowerShell:找到最新的
.avhdx
文件,然后使用命令进行合并Merge-VM -Path the_newest_checkpoint.avhdx -DestinationPath the_main_image.vhdx
。这会将所有检查点磁盘(包括最新的磁盘)合并到主文件中。 - 将新的组合
.vhdx
文件附加到导入的机器。 - 出口机器得到在职的備份。
- 确认内容确实完好无损。
- 将工作备份复制回原始机器,删除损坏的虚拟机并导入已修复的虚拟机。