Hyper-V 的虚拟机导出/导入工具集似乎存在一个明显的漏洞。也许我的评估是错误的,但我不这么认为。
我有一台虚拟机,是在主机操作系统重新安装后从备份中恢复的。虚拟机的位置(及其 VHDX)不在主机的默认位置(C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines
和D:\Virtual Hard Disks
)内。我希望将其移动到这些位置,但由于 VHDX 相当大(+10TB),标准导入至少需要 12 小时的复制工作。默认情况下,VHDX 位于同一驱动器上,尽管位于不同的文件夹中,因此关闭虚拟机并移动它们将很简单。
我尝试将配置文件复制到默认位置并运行就地注册,但遇到了错误:
不用说,这没有什么帮助。
我想我可以手动创建一个新的 VM 并指向 VHDX,但我已经精心设计了它的配置,而且我不想冒险意外错过设置。
如何才能将该虚拟机放入默认位置,而不需要执行复制那些大型 VHDX 的艰巨任务?
答案1
主虚拟机配置文件 (.vmcx) 包含指向所有其他文件(包括虚拟硬盘)的指针;因此,就地注册虚拟机要求所有文件都位于其原始位置。更改路径的唯一方法是导入虚拟机,方法是还原或复制它。
如果虚拟硬盘只需要在同一卷中的不同路径之间移动,则可以使用此解决方法来避免不必要的文件复制:
- 在原处注册虚拟机。
- 从虚拟机中删除虚拟硬盘(这只会删除配置,不会影响实际的 VHDX 文件)。
- 使用 Hyper-V 管理工具将 VM 移动到所需位置;这应该很快,因为没有磁盘需要移动。
- 手动将虚拟硬盘移动到所需位置;这也应该很快,因为它们位于同一卷上。
- 将虚拟硬盘重新连接到虚拟机。
答案2
在不在主机默认位置的环境中注册虚拟机并希望它位于主机默认位置,这在术语上是矛盾的。就地注册意味着您想在虚拟机的当前位置注册和运行它。我不认为这是一个明显的漏洞。微软的文档清楚地说明了可能的结果。
如果您想在主机默认位置注册它,那么请使用下面列出的后两个选项之一。
就地注册– 此类型假定导出文件位于您将存储和运行虚拟机的位置。导入的虚拟机具有与导出时相同的 ID。因此,如果虚拟机已在 Hyper-V 中注册,则需要先将其删除,然后才能导入。导入完成后,导出文件将成为运行状态文件,无法删除。
还原虚拟机– 将虚拟机还原到您选择的位置,或使用默认的 Hyper-V。此导入类型会创建导出文件的副本并将其移动到所选位置。导入时,虚拟机的 ID 与导出时相同。因此,如果虚拟机已在 Hyper-V 中运行,则需要先将其删除,然后才能完成导入。导入完成后,导出的文件保持不变,可以再次删除或导入。
复制虚拟机– 这与恢复类型类似,因为您需要为文件选择一个位置。不同之处在于导入的虚拟机具有新的唯一 ID,这意味着您可以将虚拟机多次导入同一主机。
如何才能将该虚拟机放入默认位置,而不需要执行复制那些大型 VHDX 的艰巨任务?
归根结底,无论您如何完成,如果虚拟机的文件不在主机的默认位置,则需要将其复制或移动到主机的默认位置。文件需要物理上位于主机的默认位置才能真正位于主机的默认位置。