我正在使用没有 System Center 的 Hyper-V,并尝试为 Linux 服务器创建“模板”,然后可以将其重新用作基本安装。我们这样做的方法是创建一台机器,我们称之为“Template_CentOS7”,我们运行安装设置我们需要的内容等。然后我关闭机器并将 vhdx 文件复制到我们的模板目录。D:\Templates\Template_CentOS7.vhdx
当我需要一台机器的新实例时Machine_XXX
,我会执行以下操作:
- 将模板复制到新目录,即
D:\Hyper-V\Machine_XXX\Virtual Hard Disks\Template_CentOS.vhdx
- 重命名文件
Machine_XXX.vhdx
- 运行 Hyper-V 管理器,通过新建->虚拟机创建新机器。
- 当提示创建新驱动器时,我将其指向新文件。
现在问题来了,我们现在对基础模板进行了一些更改,并在更改后运行检查点。现在我关闭机器,Template_CentOS7
以便可以将 vhdx 文件复制到我们的模板目录中,但现在有几个文件,Template_CentOS7.vhdx 和一堆 Template_CentOS7GUID.avhdx 文件。我不确定下一步该怎么做。Template_CentOS7.vhdx 文件的修改时间相当久远,所以我认为它不包含我所做的更改。
我需要做什么才能使用这个新的“模板”?
答案1
答案取决于你所说的“使用这个新模板”是什么意思。有两种可能的解释:
- 根据我对模板所做的更改部署新的虚拟机。
- 查看已部署的旧虚拟机中的模板更改。
第一个问题的答案是,您需要将应用更改的虚拟机中的最后一个 .avhdx 文件合并到新的模板 .vhdx 中。我建议使用 merge-vhd PowerShell cmdlet 来实现这一点,并使用 -DestinationPath 参数指定新的模板 VHDX。
第二个问题的答案是不能。虚拟磁盘快照不是文件系统快照。由于文件系统结构也在快照中,因此对父 VHD 的任何更改都代表文件系统损坏。
答案2
如果您想要合并快照并保留快照树,一种方法是导出虚拟机,删除快照子树,然后将导出的虚拟机导入为新虚拟机。现在,原始虚拟机的所有快照将合并到父 VHD(X) 中,而导出/导入的虚拟机将保留原始虚拟机的所有快照。