修正:VirtualBox打开硬盘文件失败。 无法注册虚拟硬盘,因为已经有相同UUID的磁盘存在。(已解决)

修正:VirtualBox打开硬盘文件失败。 无法注册虚拟硬盘,因为已经有相同UUID的磁盘存在。(已解决)

Andy Davis

本教程包含在VirtualBox中尝试添加现有虚拟硬盘时修复以下错误的说明:"Failed to open the hard disk file , because a hard disk with the same UUID already exists"。

在VirtualBox中出现 "Failed to open the disk Image File - Cannot Register Hard Disk "错误是因为你试图打开的虚拟磁盘镜像文件与另一个虚拟磁盘镜像文件具有相同的UUID。 在这种情况下,Virtualbox无法注册磁盘镜像文件(VDI、VHD、VMDK等)并显示以下错误。

" 无法注册硬盘 'C:\Users\%Username%\VirtualBox VMs\%VirtualDiskName1%.vdi' {%Virtual-Disk-UID%}因为UUID为{%Virtual-Disk-UID%}的硬盘'C:\Users\%Username%\VirtualBox VMsVirtualDiskName2%.vdi' 已经存在。

结果代码。
E_INVALIDARG (0x80070057)
组成部分。
虚拟盒
界面。
IVirtualBox {fafa4e17-1ee2-4905-a10e-fe7c18bf5554}
Callee RC:
VBOX_E_OBJECT_NOT_FOUND (0x80BB0001)"

如何解决VirtualBox错误:无法打开虚拟硬盘文件(.VDI),因为硬盘已经退出。

方法1.从VirtualBox中删除丢失的虚拟磁盘文件.方法2.用虚拟媒体管理器克隆磁盘镜像.方法3.改变虚拟磁盘的UUID。 方法1.从VirtualBox中删除丢失的虚拟磁盘。

如果你将虚拟硬盘移动到另一个位置(例如卷),然后你试图将虚拟硬盘(从新的位置)重新添加到一个新的或现有的虚拟机上,而之前没有从VirtualBox中删除丢失的磁盘,就会出现上述错误。 在这种情况下,你必须使用VirtualBox媒体管理器释放丢失的虚拟磁盘文件。 要做到这一点:

1. 从VirtualBox 文件 菜单,打开 虚拟媒体经理 .

2. 突出显示遗漏的虚拟磁盘(有错误标志的那个)*,并点击 发布。 (当被问及时,按 发布 按钮来释放丢失的硬盘)。

注意:如果你在这里没有看到任何遗漏的磁盘,继续进行方法-2。

3. 然后,点击 移除 (然后按 "移除 "按钮)来移除丢失的虚拟硬盘。

4. 关闭虚拟媒体管理器。
5. 突出显示你要添加虚拟硬盘文件(.VDI)的虚拟机,并点击 设置。

6. 选择 储存 在左边的窗格,然后点击 '添加硬盘' 右边的图标。

7. 点击 选择现有磁盘 .

8. 选择你要添加的虚拟硬盘文件,然后点击 开放。

9. 点击 OK 来关闭虚拟机设置。

10.开始 虚拟机。

方法二:用虚拟媒体管理器克隆虚拟磁盘。

为了避免 "打开磁盘镜像文件失败,无法注册硬盘 "的错误发生,可以通过使用VirtualBox媒体管理器*克隆虚拟磁盘镜像文件(VDI、VHD等),而不是使用主机的操作系统复制/粘贴功能。 要做到这一点。

注意:成功克隆现有虚拟硬盘镜像文件(VDI、VHD、VMDK等)的正确方法是使用VirtualBox媒体管理器的复制功能。

1. 从Virtualbox的 文件 菜单选择 虚拟媒体经理 .

2. 选择你想克隆的虚拟硬盘,并点击 拷贝 .

3. 在下一个屏幕,选择 "磁盘镜像文件类型 "和 "大小"(或保留默认设置),最后给新的磁盘镜像起个名字。
4. 完成后,点击 拷贝 并等到新的磁盘镜像创建完成。

5. 当复制完成后,使用复制的磁盘镜像在Virtualbox中创建一个新的虚拟机。

方法3.改变虚拟磁盘的UUID。

解决 "无法注册虚拟硬盘 "问题的最后方法,是重置VirtualBox错误中提到的虚拟磁盘文件(VDI)的UUID。 要做到这一点。

1.关闭 虚拟盒应用程序。

2. 以管理员身份打开命令提示符。 要做到这一点。

a. 在搜索框中输入。 cmd (或 命令提示 ).
b. 右键点击 命令提示 (结果)并选择 以管理员身份运行 .

3.复制 & 粘贴 在命令提示符下,在命令提示符窗口中输入以下命令,然后按 进入 :

  • cd C:\Program Files\Oracle\VirtualBox

4. 现在输入以下命令并按 进入 : *

  • vboxmanage internalcommands sethduuid "%Full_Path_To_VHD_File%"

注意:在上述命令中,根据你的情况改变%Full_Path_To_VHD_File%的值。 例如:如果你想重置位于 "C:\Users\Admin\VirtualBox VMs\Windows7VM "文件夹中的虚拟磁盘镜像文件 "Windows7.vdi "的UID,命令应该是。

  • vboxmanage internalcommands sethduuid "C:\Users\Admin\VirtualBox VMs\Windows7VM\Windows7.vdi"

5. 如果一切顺利,那么你应该知道UUID已经改变。

6. 关闭命令提示符,现在尝试将虚拟硬盘连接到一个新的虚拟机。

这就是所有的人!它对你有用吗?
请在下面的评论区留言,或者更好的是:喜欢并在社交网络上分享这篇博文,帮助传播这一解决方案。


Andy Davis

A system administrator s blog about Windows

Leave a comment