尝试打开与现有虚拟机具有相同 UUID 的 VM 配置

Tgr*_*Tgr 28 virtualbox

当尝试添加两个最初从同一来源复制(通过简单文件复制)的 VirtualBox 虚拟机时,在添加第二个虚拟机时,我收到消息

Failed to open virtual machine [...]
Trying to open a VM config [...] which has the same UUID as an existing virtual machine.
Run Code Online (Sandbox Code Playgroud)

(是的,机器应该被克隆而不是简单的文件复制,但此时为时已晚。)

Tgr*_*Tgr 48

您可以使用VBoxManage internalcommands sethduuid <VDI/VMDK file>(Run from the VBox install directory) 来更改 HD UUID,但这有两个缺点:它不会更新.vbox文件,并且不会更改机器 UUID(我没有找到任何方法可以使用 VBoxManage 执行此操作) ),只是 HD UUID。

以下对我有用(Win 7,最新的 VirtualBox 版本):

  1. 运行VBoxManage internalcommands sethduuid <VDI/VMDK file> 两次(第一次只是为了方便生成一个UUID,你可以使用任何其他的UUID生成方法代替)
  2. .vbox在文本编辑器中打开文件
  3. <Machine uuid="{...}"sethduuid第一次运行时得到的 UUID替换找到的 UUID
  4. 用您第二次运行时获得的 UUID替换<HardDisk uuid="{...}"<Image uuid="{}"(接近结尾)中找到的 UUIDsethduuid

之后您可以添加虚拟机。不是一个非常干净的解决方案,但似乎不会引起任何问题。

  • 这对我有用,但我还在我手动复制的虚拟机中“插入”了一张 DVD。当我编辑 .vbox 文件时,我必须将 `&lt;DVDImages&gt;...&lt;/DVDImages&gt;` 更改为 `&lt;DVDImages /&gt;` 才能“弹出”具有重复 UUID 的 DVD。 (2认同)

小智 6

我找到了一种更简单的方法来做到这一点。

克隆现有的虚拟机。这会创建一个新版本,大概是一个新的 uuid,但在所有其他方面,它是同一台机器。

然后将您要添加的文件复制到您的 \user(your name)\Virtual Box VMs\(或您的虚拟机所在的任何位置)并覆盖那里的所有现有文件,以替换现有机器。

我会先备份现有机器以防万一,然后再这样做,但在这里工作得很好。使用它返回到 VM 的早期备份,同时将现有版本保留为克隆。


nob*_*bar 5

如果由于此错误而无法启动,只需从“Oracle VM VirtualBox Manager”中“删除...”条目即可。这将清除冲突,然后您将能够从新位置打开虚拟机。

...此时,如果您愿意的话,您可以执行克隆。就我而言,不需要额外的工作,因为我不再需要虚拟机的原始位置。