我正在尝试使用已有的硬盘使用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"
虚拟磁盘的路径包含空格,因此必须用双引号括起来以避免将其解析为两个参数。
以下对我有用:
虽然你已经解决了这个问题,但我只是在这里发布了其他类似问题的原因。
原因是您的路径中有一个空格(目录名称VirtualBox VMs
),它将分隔命令。所以出现错误。
我在网上搜索了关于MAC OS的答案,所以..解决方案是
cd /Applications/VirtualBox.app/Contents/Resources/VirtualBoxVM.app/Contents/MacOS/
VBoxManage internalcommands sethduuid "full/path/to/vdi"
如果您已将磁盘(vmdk文件)从一台计算机复制到另一台计算机并需要更改副本中的磁盘UUID,则无需像其他答案所建议的那样更改计算机UUID。
您需要做的就是为磁盘映像分配一个新的UUID:
VBoxManage internalcommands sethduuid your-box-disk2.vmdk
UUID changed to: 5d34479f-5597-4b78-a1fa-94e200d16bbb
然后将旧的UUID替换为* .vbox文件中两个位置中新生成的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>
它适用于VirtualBox ver。 5.1.8在Mac OS X El Capitan上运行。
该命令失败,因为它在其中一个文件夹名称中有空格,即'VirtualBox VMs。
VBoxManage internalcommands sethduuid /home/user/VirtualBox VMs/drupal/drupal.vhd
如果文件夹名称或文件名没有空格,则该命令即使不引用它也可以工作,例如将'VirtualBox VMs'更改为'VBoxVMs'之后
VBoxManage internalcommands sethduuid /home/user/VBoxVMs/drupal/drupal.vhd
尽管这个问题很老,但请注意,更改Windows系统中虚拟硬盘上的UUID会使Windows将其视为未激活的计算机(因为它注意到磁盘更改)并要求重新激活!
在cmd.exe
中,与@ Al3x for Windows x64相同的解决方案:
cd %programfiles%\Oracle\VirtualBox
VBoxManage internalcommands sethduuid "full/path/to/.vdi"
这会随机化磁盘的UUID。专业提示:右键单击.vdi文件,同时按住shift并选择“复制为路径”以获取"full/path/to/.vdi"
并在cmd.exe中启用快速编辑,然后右键单击以粘贴。
原始解决方案的另一种替代方法是在空格之前使用转义字符\
:
VBoxManage internalcommands sethduuid /home/user/VirtualBox\ VMs/drupal/drupal.vhd