我正在尝试使用Oracle VirtualBox创建一个新的虚拟机,并使用已经存在的硬盘。当我尝试选择已经存在的硬盘文件,一个.vhd文件,它显示了一个错误,说虚拟硬盘不能被使用,因为UUID已经存在。
所以我尝试了以下命令来改变它的UUID。
VBoxManage internalcommands sethduuid /home/user/VirtualBox VMs/drupal/drupal.vhd
我收到这个错误。
语法错误:无效的UUID参数
我应该如何解决?
我正在尝试使用Oracle VirtualBox创建一个新的虚拟机,并使用已经存在的硬盘。当我尝试选择已经存在的硬盘文件,一个.vhd文件,它显示了一个错误,说虚拟硬盘不能被使用,因为UUID已经存在。
所以我尝试了以下命令来改变它的UUID。
VBoxManage internalcommands sethduuid /home/user/VirtualBox VMs/drupal/drupal.vhd
我收到这个错误。
语法错误:无效的UUID参数
我应该如何解决?
VBoxManage internalcommands sethduuid "/home/user/VirtualBox VMs/drupal/drupal.vhd"
运行VBoxManage internalcommands sethduuid "VDI/VMDK 文件"两次(第一次只是为了方便生成 UUID,您可以使用任何其他 UUID 生成方法)
在文本编辑器中打开.vbox 文件
将在Machine uuid="{...}"中找到的 UUID 替换为第一次运行 sethduuid 时获得的 UUID
将在HardDisk uuid="{...}"和Image uuid="{}"(朝向结尾)中找到的 UUID 替换为第二次运行 sethduuid 时获得的 UUID
如果您已将一个磁盘(vmdk文件)从一台机器复制到另一台机器,并需要更改副本中磁盘的UUID,则无需像另一个答案建议的那样更改机器的UUID。
您只需要为磁盘映像分配新的UUID:
VBoxManage internalcommands sethduuid your-box-disk2.vmdk
UUID changed to: 5d34479f-5597-4b78-a1fa-94e200d16bbb
然后在 *.vbox 文件中的两个位置用新生成的 UUID 替换旧的 UUID
<MediaRegistry>
<HardDisks>
<HardDisk uuid="{5d34479f-5597-4b78-a1fa-94e200d16bbb}" location="box-disk2.vmdk" format="VMDK" type="Normal"/>
</HardDisks>
在……中,并且
<AttachedDevice type="HardDisk" hotpluggable="false" port="0" device="0">
<Image uuid="{5d34479f-5597-4b78-a1fa-94e200d16bbb}"/>
</AttachedDevice>
在我的Mac OS X El Capitan上,对于VirtualBox ver. 5.1.8来说,这对我起作用了。
1. 使用Synaptic软件包管理器重新安装虚拟机
,然后2. 在虚拟机的配置中,我没有禁用软盘和EFI设置。我保持它们启用。
问题已经解决。 - Fabrizio Bertoglio我在网上搜索了关于MAC OS的答案,所以...解决方法是
cd /Applications/VirtualBox.app/Contents/Resources/VirtualBoxVM.app/Contents/MacOS/
VBoxManage internalcommands sethduuid "full/path/to/vdi"
VirtualBox VMs
),这会导致命令无法正确执行。因此会出现错误。VBoxManage internalcommands sethduuid /home/user/VirtualBox VMs/drupal/drupal.vhd
VBoxManage internalcommands sethduuid /home/user/VBoxVMs/drupal/drupal.vhd
对于Windows x64,与 @Al3x 相同的解决方案,在 cmd.exe
中:
cd %programfiles%\Oracle\VirtualBox
VBoxManage internalcommands sethduuid "full/path/to/.vdi"
这将随机化磁盘的UUID。专业提示:在按住Shift键的同时右键单击.vdi文件并选择“复制路径”以获取"full/path/to/.vdi"
,并在cmd.exe中启用快速编辑,然后右键单击以粘贴。
虽然这个问题已经很旧了,但请注意,在Windows系统中更改虚拟硬盘上的UUID会使Windows将其视为未激活的机器(因为它会注意到磁盘更改),并要求重新激活!
你原本的解决方案的另一种替代方法是在空格前使用转义字符\
:
VBoxManage internalcommands sethduuid /home/user/VirtualBox\ VMs/drupal/drupal.vhd