69

我不得不删除我的虚拟盒子 .vhd 文件。我现在正试图从另一台机器上恢复它们​​,但得到:

Virtual Box UUID {07c3.........} does not match the value {2c1b...} 
stored in the media registry ('/home/durrantm/.VirtualBox/VirtualBox.xml')

如何克服?

4

13 回答 13

146

这是为我解决此错误的原因(使用 VirtualBox 4.3):

  1. 转到文件虚拟媒体管理器
  2. 在“硬盘驱动器”选项卡中,您应该会在遇到问题的磁盘映像旁边看到一个红色感叹号图标。选择它 →释放删除关闭
  3. 返回到 VM 的设置并重新添加磁盘。

为防止将来出现错误,在删除虚拟磁盘映像文件之前,请从 Virtual Media Manager 中删除它们:

  1. 转到文件虚拟媒体管理器
  2. 硬盘选项卡中,找到要删除的虚拟磁盘,选择它 →释放删除保留(或删除,如果你想永久删除它) →关闭
  3. 返回到 VM 的设置并读取磁盘。
于 2014-08-26T15:57:35.717 回答
36

只需尝试重命名虚拟磁盘文件

对于首先通过 VB 向导创建的文件,然后在克隆另一个磁盘时被另一个工具覆盖,我遇到了同样的问题。因此,VB 对特定路径的磁盘文件有一些 uuid 假设。在我的情况下,它是一个whatever.vdi文件并重命名它以whatever 2.vdi解决问题。

于 2013-12-13T13:49:40.490 回答
11

从您的 VM 中分离图像(在 GUI 或 Web 界面中)

转到命令行

“VBoxManage 列出硬盘”

UUID:c153f127-8fd9-4dc2-bc8b-8e39a8bb8238 父UUID:基本状态:不可访问类型:正常(基本)位置:/home/virtualbox/nas4free.vmdk 存储格式:VMDK

“VBoxManage closemedium 磁盘 c153f127-8fd9-4dc2-bc8b-8e39a8bb8238”

重新附加来自 VM 的映像(在 GUI 或 Web 界面中)

于 2014-08-24T11:48:34.113 回答
6

此错误消息意味着存储在磁盘映像中的 UUID 与存储在 .vbox 文件中的 UUID 不匹配。使用 HEX 编辑器打开磁盘映像。在开始时,您可以看到一个纯文本字符串,例如 ddb.uuid.image="xxxx"。使用文本编辑器打开 .vbox 文件。您还可以在其中找到 UUID,它们看起来像 <Harddisk uuid="{xxxxx}"。编辑 .vbox 文件以匹配图像文件中的 UUID。

此错误消息显然具有误导性。

于 2014-03-04T13:51:40.147 回答
6

另一个解决方案,对我来说很好,来自http://michlstechblog.info/blog/virtualbox-no-boot-after-snapshot-efail-0x80004005/#more-2400

从 uuidCreation 字段值

vboxmanage internalcommands dumphdinfo <path/to/parent/of/erroneous/snapshot.vdi>

<correct_parent_uuid>并在以下命令中使用它来替换

vboxmanage internalcommands sethdparentuuid <path/to/erroneous/snapshot.vdi> <correct_parent_uuid>
于 2016-04-06T19:17:22.813 回答
2

尝试使用 VBoxManage 命令来识别、分离和删除磁盘。

看看这个链接。希望它可以帮助您解决这个令人讨厌的错误。

http://www.vleeuwen.net/2012/10/virtualbox-uuid-mismatch

于 2013-02-25T19:34:20.607 回答
2

最后,最好的答案是删除这些 vm 实例并重新安装它们。

我曾尝试重新安装 Virtual Box 本身,但这根本没有帮助,因为当我重新安装时问题仍然存在。这表明问题出在实例特定文件上。

所以我使用该应用程序删除了它们中的每一个。

对于我安装的 ie9 和 ie8,我还在 ~/.ievms 中删除了任何相关文件(ie8 的 smae 中的 egie8)。

然后我使用这些脚本重新安装它们:

即8:

curl -s https://raw.github.com/xdissent/ievms/master/ievms.sh | IEVMS_VERSIONS="8" bash

即9:

curl -s https://raw.github.com/xdissent/ievms/master/ievms.sh | IEVMS_VERSIONS="9" bash
于 2013-02-26T01:52:57.560 回答
0

实际上,我遇到了同样的问题,我VM在本地 HD 上进行了克隆,然后将克隆的图像移动到我的外部 HD,然后出现错误。

我用以下解决方案解决了这个问题:

  1. 导航到我在外部 HD 上克隆的 VM 文件夹。
  2. 使用 Oracle Virtual Box 打开它(右键单击 >> Open with oracle VM virtual Box)。
  3. 出现一个错误,说 vm 文件路径不正确,有两个选项“确定”和“迁移或合并”我选择了第二个“迁移”然后一切顺利。

如果你打开: file>> virtual media manaager: 在硬盘菜单中你最终会找到路径正确的虚拟硬盘:D 我希望我的演示清晰易懂。

于 2015-01-01T13:03:07.793 回答
0

使用标准文本编辑器打开文件.VirtualBox/VirtualBox.xml并将所有出现的 UUID 值编辑2c1b...07c3..........

在编辑之前关闭 VirtualBoxVirtualBox.xml以避免您的更改被 VirtualBox 覆盖。

于 2014-05-05T07:53:17.793 回答
0

列出所有无法访问的 UUID 的第一行:

VBoxManage list hdds | grep -B 2 -e  "inaccessible" | grep -e "^UUID:" | sed "s/UUID:\s*//g"

清除所有无法访问的 UUID 的第二行:

VBoxManage list hdds | grep -B 2 -e  "inaccessible" | grep -e "^UUID:" | sed "s/UUID:\s*//g" | xargs -I {} VBoxManage closemedium disk {}
于 2020-05-12T09:10:51.403 回答
0

问题陈述:

我试图从同一个 VM 文件的 2 个单独副本创建 2 个 VM。ubuntu.vdi 是原始vdi文件,其 VM 名称为 ubuntu. 该vdi文件的第二个副本也被命名ubuntu.vdi,但属于另一个VM名为ubuntu_notworking. 我试图调出两个 VM 的原因是因为两个 VM 之间发生了一些变化。VM ubuntuVM 工作正常,但没有 ubuntun_notworking工作,我想同时调出两个 VM 并比较这两个 VM 以检查发生了什么变化。然而,同时提出这两个问题是很困难的,VirtualBox 反复抱怨 C:\Users\username\.VirtualBox\VirtualBox.xml.xml 文件中的 UUID 和 C:\Users\username\VirtualBox VMs\ubuntu.

问题方案:

  1. 使用以下任一选项备份您的 VM 文件夹:

    1. 将文件夹复制到新位置 https://4sysops.com/archives/move-virtualbox-folder-with-virtual-machines-to-a-new-location/
    2. 将您的虚拟机导出为 OVA 文件,以便稍后导入。 https://askubuntu.com/questions/588426/how-to-export-and-import-virtualbox-vm-images 导出你的VM是官方版的如何移动文件夹,

    复制文件夹是最快的,但有一些边缘情况,例如当您尝试从同一个基本vdi文件创建 2 个 VM 时。

  2. 重新开始并从 VirtualBox 中删除 VM: 您可以通过转到 GUI>select VM>Remove 来执行此操作。仅删除导致启动问题的 VM
  3. 将文件复制到 VirtualBox 驱动器: 从上述步骤 1 中 VM 文件夹的备份副本中,将要创建的特定 VM 复制到 C:\Users\username\VirtualBox VMs\
  4. 启动第一个 VM: 选择.vbox文件并启动 VM。VirtualBox 会抱怨文件中的 uuid 之间存在冲突.vbox
  5. 更改 UUID:使用 VBoxManage internalcommands sethduuid "C:\Users\username\VirtualBox VMs\ubuntu_notworking\ubuntu.vdi" https://stackoverflow.com/avdi更改刚刚复制到文件夹中 的文件的 UUID /47374208/4752883VirtualBox VMs

  6. 重复完全相同的命令以获取第二个 UUID: https ://stackoverflow.com/a/36327937/4752883

  7. 更改Machine uuid 打开.vbox文件并找到Machine uuiduuid 文件并将其更改为您在步骤 #5 中找到的文件

  8. 更改Harddisk uuidand Image uuid 找到Harddisk uuidandImage uuid并将 uuid 更改为您在步骤#6 中找到的内容。

  9. 对要创建的第二个 VM 重复步骤# 3-8:

  10. 转到 C:\Users\username.VirtualBox\ 并打开VirtualBox.xml 文件。

  11. 更改文件夹Machine uuid中的.VirtualBoxC:\Users\username\VirtualBox VMs\ubuntu_notworking从第 5 步开始。对于与“C:\Users\username\VirtualBox VMs\ubuntu”对应的机器 ID,将机器更改为您在步骤 #9 中生成的第一个 UUID。 <DVDImages> <Image uuid="{fsfasd98-c1a6-42d9-82aa-67728bsdhd53}" location="C:/Program Files/Oracle/VirtualBox/VBoxGuestAdditions.iso"/> </DVDImages>

https://stackoverflow.com/a/36857344/4752883

一旦按照上述步骤(!!!),您应该能够从同一vdi文件的副本启动 2 个 VirtualBox 虚拟机。

将来不要复制文件夹,而是使用创建ova文件的方法。

于 2018-03-25T02:31:21.447 回答
0

我尝试了上述所有这些解决方案,但只有@Niklas Peter 的解决方案对我有用。

就我而言,该错误声称硬盘驱动器的 uuid 与注册表中的 uuid 不匹配(多么奇怪的虚拟盒错误!)。即使我将它分离并重新连接,同样的错误仍然存​​在。

最后我复制了硬盘并给它起了一个新名字,并从中创建了一个新的VM,遇到了相同uuid已经存在的错误,所以我使用以下命令更改uuid:

VBoxManage internalcommands sethduuid "D:\VM\MyKyLin\MyKyLin.vhd" UUID changed to: 741da151-548a-4e3c-87bf-2725f77c683d

然后我继续从中创建新的虚拟机。并成功启动!

于 2017-11-19T06:15:00.817 回答
0

100 票赞成的答案对我不起作用

当我进入菜单:文件→虚拟媒体管理器时,硬盘驱动器选项是空白的,所以没有什么可以删除/释放。

我的错误屏幕

vbox错误.png

解决方案

我将错误文本复制并粘贴到gedit并很好地格式化了行:

Machine UUID {89b61270-7d52-483c-bd40-2f14d6905c72}
 - in '/home/rick/VirtualBox VMs/Lubuntu 16.04/Lubuntu 16.04.vbox' doesn't match its 
UUID {3ca76efb-a497-42da-852c-da97a74b421b}
 - in the registry file '/home/rick/.config/VirtualBox/VirtualBox.xml'.

然后我将最后一行中的文件名复制并粘贴到 gedit 的文件打开提示中。这是 Gedit 新打开的第二个文件窗口的顶部:

<?xml version="1.0"?>
<!--
** DO NOT EDIT THIS FILE.
** If you make changes to this file while any VirtualBox related application
** is running, your changes will be overwritten later, without taking effect.
** Use VBoxManage or the VirtualBox Manager GUI to make changes.
-->
<VirtualBox xmlns="http://www.virtualbox.org/" version="1.12-linux">
  <Global>
    <ExtraData>
      <ExtraDataItem name="GUI/DetailsPageBoxes" value="general,system,preview,display,storage,audio,network,usb,sharedFolders,description"/>
      <ExtraDataItem name="GUI/GroupDefinitions/" value="m=3ca76efb-a497-42da-852c-da97a74b421b"/>
  • 注意它说“不要编辑这个文件”。. 当然,这意味着我即将这样做!
  • 现在关闭正在运行的VirtualBox应用程序。
  • gedit发出文件已更改的警告,请单击Reload按钮。

改变.config/VirtualBox/VirtualBox.xml

现在在第二个 gedit 打开的文件窗口中使用搜索和替换Ctrl+ H。它要求一个搜索字符串。

  1. 单击第一个 gedit 打开的文件窗口。
  2. 突出显示目标机器(第二个 UUID)的 UUID 字符串(引号之间)。使用Ctrl+C进行复制。
  3. 切换回第二个窗口并使用Ctrl+V粘贴到搜索字段中。
  4. 单击替换字符串字段以使其获得焦点。
  5. 切换回第一个 gedit 窗口。
  6. 突出显示源 UUID(第一个 UUID)并使用Ctrl+C进行复制。
  7. 切换回第二个 gedit 窗口并使用Ctrl+V粘贴到替换字段中。
  8. 单击Replace All按钮并进行两项更改。
  9. 保存第二个 gedit 文件窗口。

VirtualBox 现在加载复制的图像

现在可以使用复制的图像正常工作,但是我忘记将 Guest Additions 安装到新的 VirtualBox。

为什么所有这些麻烦而不是export从源机器和import目标机器上使用?好吧,源机器被Ubuntu Desktopapt-get堵住了,所以我不得不将../VirtualBoxVM文件夹复制到Ext4格式的 USB 记忆棒上。默认FAT格式的文件系统不起作用,因为 VB 磁盘映像大于 4 GB。我也可以选择NTFS文件系统类型,但我已经有很多这样的 USB 记忆棒,想尝试一些不同的东西。

于 2018-08-03T14:05:11.183 回答