VirtualBox 映像已损坏

VirtualBox 映像已损坏

我在 Windows 7 64 位上使用 VirtualBox 4.1.8。昨天我很高兴地在虚拟机上工作。今天 VirtualBox 管理器说虚拟机“无法访问”,并且找不到硬盘映像。我检查了虚拟机的存储位置,它就在那里。

因此,我从列表中删除了虚拟机并尝试重新添加硬盘映像。VirtualBox 给出了此错误:

Failed to open virtual machine located in D:/VM/Template Win7/Template Win7.vbox.

Trying to open a VM config 'D:/VM/Template Win7/Template Win7.vbox' which has the same UUID as an existing virtual machine.

Result Code: E_FAIL (0x80004005)
Component: Machine
Interface: IMachine {5eaa9319-62fc-4b0a-843c-0cb1940f8a91}
Callee: IVirtualBox {c28be65f-1a8f-43b4-81f1-eb60cb516e66}

不再有其他同名的虚拟机,所以我似乎被卡住了。

答案1

VirtualBox 中的 GUID 问题相当常见。通常,您可以通过删除所有冲突对象(即:2 个具有相同 GUID 的虚拟 HD:删除两者)然后按顺序重新添加它们来解决这些问题。

此外,您应该首先注册您的虚拟机,然后再注册您传输或复制的硬盘。

答案2

最后,您需要清理重复的 UUID。最好的方法是从存储管理器(和相关机器)中删除一个受影响的 VHD 文件,然后更改 UUID:

VBoxManage internalcommands sethduuid path_to_vhd

您应该能够在存储管理器中附加 VHD 并将其分配回您需要的机器。

作为最佳实践,在克隆虚拟硬盘文件时使用相关的 VBoxManage 命令,因为它会自动为克隆的驱动器生成新的 UUID。

VBoxManage clonedhd source_vhd_file dest_vhd_file

答案3

当您直接从浏览器/资源管理器复制 Virtualbox VM 时,就会出现此类问题。您已使用此命令为它们重新生成磁盘和虚拟机的 UUID。

VBoxManage internalcommands sethduuid "localtion/to/your/hddimage.vdi"

它将为您的 VBox HDD 生成一个新的 UUID。您也可以使用该 UUID 更改虚拟机的 UUID。打开虚拟盒配置文件,yourvmname.vbox然后进行以下更改。

<Machine uuid="{------ Here -----}" name="Ubuntu-12.10-Server" OSType="Ubuntu" currentSnapshot="{8071455e-656a-492f-afae-543ddbaaadfc}" snapshotFolder="Snapshots" lastStateChange="2013-01-02T09:47:31Z">
    <MediaRegistry>
      <HardDisks>
        <HardDisk uuid="{-------- Here -----}" 
        .....
        <StorageController name="SATA" type="AHCI" PortCount="1" useHostIOCache="false" Bootable="true" IDE0MasterEmulationPort="0" IDE0SlaveEmulationPort="1" IDE1MasterEmulationPort="2" IDE1SlaveEmulationPort="3">
          <AttachedDevice type="HardDisk" port="0" device="0">
            <Image uuid="{------ And Here -------}"/>
          </AttachedDevice>
        </StorageController>
 -----

保存文件并打开机器。它将正常工作。

相关内容