尝试添加两个 VirtualBox 虚拟机时,这两个虚拟机最初都是从同一源复制的(通过简单的文件复制),在添加第二个虚拟机时,我收到消息
Failed to open virtual machine [...]
Trying to open a VM config [...] which has the same UUID as an existing virtual machine.
(是的,应该克隆机器而不是简单的文件复制,但此时已经太晚了。)
答案1
您可以使用VBoxManage internalcommands sethduuid <VDI/VMDK file>
(从 VBox 安装目录运行)来更改 HD UUID,但这有两个缺点:它不会更新文件.vbox
,也不会更改机器 UUID(我没有找到任何使用 VBoxManage 执行此操作的方法),只是 HD UUID。
以下对我有用(Win 7,最新的VirtualBox版本):
- 跑步
VBoxManage internalcommands sethduuid <VDI/VMDK file>
两次(第一次只是为了方便生成 UUID,您可以使用任何其他 UUID 生成方法) .vbox
在文本编辑器中打开该文件- 将找到的 UUID 替换
<Machine uuid="{...}"
为你sethduuid
第一次运行时获得的 UUID - 用第二次运行时获得的UUID 替换在和(接近末尾)
<HardDisk uuid="{...}"
中找到的 UUID<Image uuid="{}"
sethduuid
之后您可以添加虚拟机。这不是一个干净的解决方案,但似乎不会造成任何问题。
答案2
我找到了一种更简单的方法。
克隆现有的虚拟机。这将创建一个新版本,可能带有新的 uuid,但在其他方面,它是同一台机器。
然后将您想要添加的文件复制到您的 \user(您的名字)\Virtual Box VMs\(或虚拟机所在的任何位置)并覆盖那里的所有现有文件,以替换现有的机器。
在执行此操作之前,我会先备份现有机器以防万一,但在这里它工作得很好。使用它返回虚拟机的早期备份,同时将现有版本保留为克隆。
答案3
如果您由于此错误而无法启动,只需从“Oracle VM VirtualBox Manager”中“删除...”该条目。这将清除冲突,然后您将能够从新位置打开虚拟机。
...此时,如果您愿意,您可以执行克隆。就我而言,不需要额外的努力,因为我不再需要虚拟机的原始位置。
答案4
您还可以克隆现有机器,然后进入设置并更改存储以使用您之前复制的.vmdk。