提示语句为: 打开硬盘文件D:\Virtualbox\debian9 - 副本.vdi 失败.
明细(D) Cannot register the hard disk ‘D:\Virtualbox\debian9 - 副本.vdi’ {e0c7ce1c-049c-4f55-89b9-05e13b281319} because a hard disk ‘D:\Virtualbox\debian9.vdi’ with UUID {e0c7ce1c-049c-4f55-89b9-05e13b281319} already exists.
返回 代码: E_INVALIDARG (0x80070057)
组件: VirtualBoxWrap
界面: IVirtualBox {9570b9d5-f1a1-448a-10c5-e12f5285adad}
被召者 RC: VBOX_E_OBJECT_NOT_FOUND (0x80BB0001)
是因为uuid重复,需要修改。
新建批处理文件文件 sethduuid.bat,复制下面代码,保存运行。
注意:其中的变量 vboxmanagepath 和 hdvdipath 需要修改为实际位置。
@echo off :: 直接复制vdi, 会提示虚拟电脑控制台-错误 :: 根据错误提示可知,无法直接使用复制过来的vdi文件作为已有的虚拟硬盘文件原因是同一主机下两个vdi文件的UUID重复。 :: 因此修改其中一个vdi文件的UUID即可解决。 :: 我们通过VBoxManage + internalcommands sethduuid这一子命令加vdi文件所在路径来对拷贝后vdi文件的UUID进行修改。 Rem 参考于 https://www.linuxidc.com/Linux/2017-05/144372.htm :: 设置虚拟机安装VBoxManage所在的位置 set vboxmanagepath="C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" :: 设置需要改变uuid虚拟硬盘的位置 set hdvdipath="D:\Virtualbox\debian9.vdi" echo= %vboxmanagepath% internalcommands sethduuid %hdvdipath% pause
本文参考于 https://www.linuxidc.com/Linux/2017-05/144372.htm