Tentando abrir uma configuração de VM que tenha o mesmo UUID de uma máquina virtual existente

26

Ao tentar adicionar duas máquinas virtuais do VirtualBox que foram originalmente copiadas (via cópia simples de arquivo) da mesma fonte, ao adicionar a segunda, recebo a mensagem

Failed to open virtual machine [...]
Trying to open a VM config [...] which has the same UUID as an existing virtual machine.

(Sim, as máquinas deveriam ter sido clonadas em vez da cópia simples de arquivo, mas é tarde demais neste momento.)

Tgr
fonte

Respostas:

40

Você pode usar VBoxManage internalcommands sethduuid <VDI/VMDK file>(Executar a partir do diretório de instalação do VBox) para alterar o UUID do HD, mas há duas falhas: ele não atualiza o .vboxarquivo e o UUID da máquina (não encontrei nenhuma maneira de fazer isso com o VBoxManage ), apenas o UUID HD.

O seguinte funcionou para mim (Win 7, versão mais recente do VirtualBox):

  1. executar VBoxManage internalcommands sethduuid <VDI/VMDK file> 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 .vboxarquivo em um editor de texto
  3. substitua o UUID encontrado <Machine uuid="{...}"pelo UUID que você obteve quando executou sethduuida primeira vez
  4. substitua o UUID encontrado dentro <HardDisk uuid="{...}"e dentro <Image uuid="{}"(no final) pelo UUID que você obteve quando executou sethduuida segunda vez

Você pode adicionar a máquina virtual depois disso. Não é uma solução muito limpa, mas não parece causar nenhum problema.

Tgr
fonte
1
Isso funcionou para mim, mas eu também tinha um DVD "inserido" na VM que estava copiando manualmente. Quando editei meu arquivo .vbox, tive que mudar <DVDImages>...</DVDImages>para apenas <DVDImages />"ejetar" o DVD com o UUID duplicado.
precisa saber é o seguinte
Observe que, se a VM tiver instantâneos, você também precisará executar as mesmas etapas nos arquivos vdi na pasta "Snapshots".
laurent
6

Eu encontrei uma maneira mais simples de fazer isso.

Clone a máquina virtual existente. Isso cria uma nova versão com presumivelmente um novo uuid, mas em todos os outros aspectos é a mesma máquina.

Em seguida, copie o que você deseja adicionar para seu \ usuário (seu nome) \ Virtual Box VMs \ (ou onde quer que o local seja para suas máquinas virtuais) e substitua todos os arquivos existentes lá, para substituir a máquina existente.

Eu faria o backup da máquina existente primeiro, apenas por precaução, antes de fazer isso, mas funcionou bem aqui. Utilizou-o para voltar ao backup anterior de uma VM, mantendo a versão existente como um clone.

Robert Walker
fonte
se você tiver espaço em disco suficiente, essa é a maneira mais fácil, graças a Robert.
Sddk
Se alguém fizer isso - verifique se o arquivo vbox possui uma tag de hardware uuid que corresponde à máquina uuid :: <hardware uuid = "{...}">, então eles podem alterar o uuid do disco rígido e o uuid da máquina sem quaisquer problemas. <hardware uuid = "{...}">
StixO
2

Sei que este é um post antigo, mas corri com esse erro. Eu o resolvi da seguinte maneira:

  1. Abra o Virtual Box Manager
  2. Clique com o botão direito do mouse na máquina virtual no Virtual Box Manager
  3. Clique em "Remover"
  4. Um pop-up aparecerá. Escolha "Remover apenas", que simplesmente removerá todos os traços da caixa virtual do Virtual Box Manager
  5. Feche o Virtual Box Manager
  6. Usando o gerenciador de arquivos Linux, navegue até a pasta que contém a máquina virtual
  7. Exclua (ou mova) tudo, EXCETO o arquivo de disco rígido virtual .vmdk
  8. Abra o Virtual Box Manager
  9. Clique em "Machine"
  10. Clique em "New"
  11. Nomeie a nova máquina (usei o mesmo nome que usei originalmente)

    NOTA: O nome da máquina será o nome do diretório que conterá a máquina virtual, portanto escolha com sabedoria e observe também que, se você deseja que o arquivo .vmdk resida no novo diretório, ele executará etapas adicionais no Virtual Box Gerente

  12. Selecione o tipo e a versão adequados para a máquina virtual que estava com o problema e clique em "Avançar"
  13. Selecione o tamanho da memória que você deseja que a máquina virtual aloque e clique em "Avançar"
  14. Selecione "Usar e arquivo de disco rígido virtual existente" e selecione-o navegando até o local
  15. Selecione "Criar"

Simplesmente siga as instruções de lá e inicie a máquina virtual.

Tudo corre bem, sem necessidade de reativação de janelas ou etc.

Dale Reynolds
fonte
1

Você também pode clonar a máquina existente, entrar nas configurações e alterar o armazenamento para usar o .vmdk que você copiou anteriormente.

Toby
fonte
1

Se você não conseguir iniciar devido a esse erro, basta 'Remover ...' a entrada do 'Oracle VM VirtualBox Manager' . Isso limpará o conflito e você poderá abrir a VM a partir do novo local.

... Nesse ponto, você pode executar um clone, se é isso que você pretende. No meu caso, nenhum esforço adicional foi necessário, pois eu não precisava mais do local original da VM.

nobar
fonte
Esta é de longe a solução mais simples, e não apenas isso, ela funciona.
shmu 8/07
-1

O usuário TGR acertou, mas tive que fazer uma alteração adicional: no XML do vbox, era necessário alterar o uuid Image para corresponder ao uuid HardDisk (o segundo UUID gerado na linha de comando)

<StorageControllers>
   <StorageController ...>
     <AttachedDevice ...>
       <Image uuid="{ [second UUID] }"/>
DakotaHoosier
fonte
-1

Eu encontrei outra maneira mais simples do que qualquer outra. Você só precisa excluir a máquina virtual da interface do Virtual Box (se perguntar se você deseja excluir os arquivos da VM, responda NÃO !, ou você perderá a VM). E, em seguida, vá para o arquivo .vbox e abra-o (com a Caixa virtual). Deve funcionar porque você excluiu o UUID (enquanto excluiu a VM). Pelo menos funcionou pra mim...

Marouan Kouitra
fonte