virtual machine vboxmanage Como faço para alterar o UUID de um disco virtual?




virtualbox uuid already exists ubuntu (8)

Mesmo que esta pergunta seja antiga, note que mudar um UUID em um HDD virtual em um sistema Windows fará com que o Windows o trate como uma máquina não ativada (pois percebe a mudança no disco) e solicitará reativação!

Eu estou tentando criar uma nova máquina virtual com o Oracle VirtualBox, usando um disco rígido já existente. Quando tento selecionar o arquivo de disco rígido existente, um arquivo .vhd, ele exibe um erro informando que o disco rígido virtual não pode ser usado porque o UUID já existe.

Então eu tentei o seguinte comando para alterar seu UUID.

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

Eu recebo este erro.

Erro de sintaxe: parâmetro UUID inválido

Como posso resolver isto?


Embora você tenha resolvido o problema, acabei de postar a razão aqui para outras pessoas com o mesmo problema.

A razão é que há um espaço em seu caminho (nome do diretório VirtualBox VMs ) que separará o comando. Então o erro aparece.


O seguinte funcionou para mim:

  1. execute vboxManage internalcommands sethduuid "Arquivo VDI / VMDK" duas vezes (a primeira vez é apenas para gerar convenientemente um UUID, você pode usar qualquer outro método de geração de UUID)

  2. abra o arquivo .vbox em um editor de texto

  3. substitua o UUID encontrado em Machine uuid = "{...}" pelo UUID que você obteve quando executou o sethduuid pela primeira vez

  4. substitua o UUID encontrado no disco rígido uuid = "{...}" e em Image uuid = "{}" (no final) com o UUID que você obteve quando executou o sethduuid pela segunda vez


Mesma solução que @ Al3x para Windows x64, em cmd.exe :

cd %programfiles%\Oracle\VirtualBox

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

Isso randomiza o UUID do disco. Dica: Clique com o botão direito do mouse no arquivo .vdi enquanto pressiona Shift e selecione "Copiar como caminho" para obter "full/path/to/.vdi" e habilite a edição rápida em cmd.exe e clique com o botão direito para colar.


Se você copiou um disco (arquivo vmdk) de uma máquina para outra e precisa alterar o UUID de um disco na cópia, não é necessário alterar o UUID da máquina como foi sugerido por outra resposta.

Tudo o que você precisa fazer é atribuir um novo UUID à imagem de disco:

VBoxManage internalcommands sethduuid your-box-disk2.vmdk
UUID changed to: 5d34479f-5597-4b78-a1fa-94e200d16bbb

e, em seguida, substitua o antigo UUID pelo recém-gerado em dois locais no seu arquivo * .vbox

<MediaRegistry>
  <HardDisks>
    <HardDisk uuid="{5d34479f-5597-4b78-a1fa-94e200d16bbb}" location="box-disk2.vmdk" format="VMDK" type="Normal"/>
  </HardDisks>

e em

    <AttachedDevice type="HardDisk" hotpluggable="false" port="0" device="0">
      <Image uuid="{5d34479f-5597-4b78-a1fa-94e200d16bbb}"/>
    </AttachedDevice>

Funcionou para mim para o VirtualBox ver. 5.1.8 rodando no Mac OS X El Capitan.


Eu pesquisei na web por uma resposta sobre o MAC OS, então ... a solução é

cd /Applications/VirtualBox.app/Contents/Resources/VirtualBoxVM.app/Contents/MacOS/

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

Outra alternativa para sua solução original seria usar o caractere de escape \ antes do espaço:

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

O comando falha porque tem espaço em um dos nomes da pasta, ou seja, 'VMs do VirtualBox.

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

Se não houver espaço no nome da pasta ou no nome do arquivo, o comando funcionará mesmo sem citá-lo, por exemplo, após alterar 'VirtualBox VMs' em 'VBoxVMs'

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