制作安装 Windows 后不会导致 Windows 重新激活的 VirtualBox 机器的克隆

pal*_*wim 15 windows virtualbox virtual-machine windows-activation

大多数在 VirtualBox 上安装 Windows 作为快速 Windows 作业模板的指南都告诉您安装 Windows之前采取几个步骤来准备虚拟机(我找到的最佳指南:grahamrhay.wordpress.com;另一个相当不错的指南:www .windowstablettv.com)。不幸的是,在我想用作模板的 VM 上安装和激活 Windows 之前,我没有阅读这些指南。

我想知道如何以不需要从 Windows 重新激活的方式克隆我已经处于活动状态的 VM。

查看模板 VM 定义文件(VM 的 VBOX 或 XML 文件),/VirtualBox/Machine/Hardware(XPath ID) 节点没有uuid属性。但是,如果我尝试使用VBoxManage modifyvm <uuid|name> --hardwareuuid <uuid>为模板 VM 设置新的 UUID,那么模板 VM 将失去其激活状态!(谢天谢地,我已经备份了模板。)所以,为了实现我的目标,我不能假装我还没有安装 Windows 来遵循这些指南。

pal*_*wim 12

值得庆幸的是,我注意到我所有的虚拟机都没有按照那些指南中的概述准备好。

我运行VBoxManage showvminfo <uuid|name>并注意到UUIDvalued 与Hardware UUIDvalue匹配,这让我推测如果任何 VM 定义uuid/VirtualBox/Machine/Hardware节点中没有属性,那么 VM 将使用“机器 UUID”值作为“硬件 UUID”值。因此,对于我的模板 VM,它确实有一个我可以使用的“硬件 UUID”;我只需要找到如何将它转移到我要制作的任何克隆中。

为确保 UUID 传输,您可以采用以下两种方法之一:

  • 您可以直接编辑模板 VM 定义文件。“硬件 UUID”仅在/VirtualBox/Machine/Hardware具有uuid属性的情况下才会传输到克隆。因此,复制该/VirtualBox/Machine uuid属性并将其添加到该/VirtualBox/Machine/Hardware uuid属性中。在此之后,您可能希望通过关闭/终止您正在运行的任何 VirtualBox 进程来重新初始化 VirtualBox 机器数据库。(VBoxSVC 有时会在 Windows 上徘徊;您可能必须从任务管理器中将其杀死。)
  • 您可以克隆您的模板并制作一个新的模板VM,然后使用VBoxManage modifyvm <uuid|name> --hardwareuuid <uuid>将新模板的“硬件UUID”设置为原始模板的“机器UUID”/“硬件UUID”。我说你必须克隆虚拟机来创建一个新的模板虚拟机,因为如果你尝试在原始模板上使用这个命令设置“硬件 UUID”,它不会将该uuid属性添加到/VirtualBox/Machine/Hardware节点,因为它仍然可以暗示它来自“机器 UUID”,因此不会将此值复制到它制作的任何克隆中。

  • 如果您传递的 UUID 与 VM 的“/VirtalBox/Machine”节点“uuid”属性值相同,则“modifyvm”命令将不会设置“/VirtualBox/Machine/Hardware”节点“uuid”属性。您必须直接编辑 VBOX 文件。 (2认同)