如何更改虚拟磁盘的UUID?

时间:2013-07-23 06:55:15

标签: virtual-machine virtualbox

我正在尝试使用已有的硬盘使用Oracle VirtualBox创建新的虚拟机。当我尝试选择现有的硬盘文件(.vhd文件)时,会显示一条错误消息,指出由于UUID已存在而无法使用虚拟硬盘。

所以我尝试了以下命令来更改其UUID。

VBoxManage internalcommands sethduuid /home/user/VirtualBox VMs/drupal/drupal.vhd

我收到此错误。

  

语法错误:无效的UUID参数

我该如何解决这个问题?

9 个答案:

答案 0 :(得分:150)

正确的命令是以下命令。

VBoxManage internalcommands sethduuid "/home/user/VirtualBox VMs/drupal/drupal.vhd"

虚拟磁盘的路径包含空格,因此必须用双引号括起来,以避免将其解析为两个参数。

答案 1 :(得分:28)

以下对我有用:

  1. 运行 VBoxManage内部命令sethduuid" VDI / VMDK文件" 两次(第一次只是为了方便地生成UUID,您可以使用任何其他UUID生成方法代替)

  2. 在文本编辑器中打开 .vbox文件

  3. 使用您第一次运行sethduuid时获得的UUID替换计算机uuid =" {...}" 中的UUID

  4. 替换 HardDisk uuid =" {...}" 图片uuid =" {}&#中找到的UUID 34; (到最后)使用第二次运行sethduuid时获得的UUID

答案 2 :(得分:10)

虽然你已经解决了这个问题,但我只是在这里发布了其他类似问题的原因。

原因是您的路径中有一个空格(目录名VirtualBox VMs),它将分隔命令。所以出现错误。

答案 3 :(得分:10)

我在网上搜索了关于MAC OS的答案,所以..解决方案是

$('ul.standard').parent().siblings(".stepText").css(...your CSS here);

答案 4 :(得分:8)

如果您已将磁盘(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版本对我有用。 5.1.8在Mac OS X El Capitan上运行。

答案 5 :(得分:5)

该命令失败,因为它在其中一个文件夹名称中有空格, 即'VirtualBox VMs。

VBoxManage internalcommands sethduuid /home/user/VirtualBox VMs/drupal/drupal.vhd

如果文件夹名称或文件名没有空格,那么该命令即使不引用它也能正常工作, 例如将'VirtualBox VMs'更改为'VBoxVMs'后

VBoxManage internalcommands sethduuid /home/user/VBoxVMs/drupal/drupal.vhd

答案 6 :(得分:3)

即使这个问题已经陈旧,请注意更改Windows系统中虚拟硬盘上的UUID会使Windows将其视为未激活的计算机(因为它注意到磁盘更改)并要求重新激活!

答案 7 :(得分:3)

cmd.exe中,与Windows x64的@ Al3x相同的解决方案:

cd %programfiles%\Oracle\VirtualBox

VBoxManage internalcommands sethduuid "full/path/to/.vdi"

这将随机化磁盘的UUID。专家提示:按住shift键的同时在.vdi文件上单击鼠标右键,然后选择“复制为路径”以获得"full/path/to/.vdi"并在cmd.exe中启用快速编辑,然后右键单击以粘贴。

答案 8 :(得分:2)

原始解决方案的另一种替代方法是在空格前使用转义字符\

VBoxManage internalcommands sethduuid /home/user/VirtualBox\ VMs/drupal/drupal.vhd