web-dev-qa-db-fra.com

Comment changer l'UUID d'un disque virtuel?

J'essaie de créer une nouvelle machine virtuelle avec Oracle VirtualBox, en utilisant un disque dur existant. Lorsque j'essaie de sélectionner le fichier de disque dur existant, un fichier .vhd, il affiche une erreur indiquant que le disque dur virtuel ne peut pas être utilisé car l'UUID existe déjà.

J'ai donc essayé la commande suivante pour changer son UUID.

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

Je reçois cette erreur.

Erreur de syntaxe: paramètre non valide UUID

Comment puis-je résoudre ça?

123
Chandan Raikar

La commande correcte est la suivante.

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

Le chemin d'accès au disque virtuel contient un espace. Il doit donc être placé entre guillemets pour éviter qu'il ne soit analysé comme deux paramètres.

154
Chandan Raikar

Ce qui suit a fonctionné pour moi:

  1. lancez VBoxManage internalcommands sethduuid "fichier VDI/VMDK" deux fois (la première fois consiste simplement à générer un UUID, vous pouvez utiliser une autre méthode de génération d'UUID à la place)

  2. ouvrez le fichier . vbox dans un éditeur de texte

  3. remplacez l'UUID trouvé dans Machine uuid = "{...}" par l'UUID que vous avez obtenu lors de la première utilisation de sethduuid

  4. remplacez l’UUID trouvé dans HardDisk uuid = "{...}" et dans Image uuid = "{}" (vers la fin) par l’UUID que vous avez obtenu lorsque vous a couru sethduuid la deuxième fois

28
borchvm

Bien que vous ayez résolu le problème, je viens d’afficher ici la raison pour laquelle d’autres ont le même problème.

La raison en est qu'il y a un espace dans votre chemin (nom de répertoire VirtualBox VMs) qui séparera la commande. Donc l'erreur apparaît.

10
Java Xu

J'ai cherché sur le Web une réponse concernant MAC OS, donc .. la solution est

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

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

Si vous avez copié un disque (fichier vmdk) d'une machine à une autre et avez besoin de changer l'UUID d'un disque dans la copie, vous n'avez pas besoin de changer l'UUID de la machine comme suggéré par une autre réponse.

Tout ce que vous avez à faire est d’attribuer un nouvel UUID à l’image disque:

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

puis remplacez l'ancien UUID par celui nouvellement généré à deux endroits dans votre fichier * .vbox

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

et en

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

Cela a fonctionné pour moi pour VirtualBox ver. 5.1.8 fonctionnant sur Mac OS X El Capitan.

8
Oleg Gryb

La commande échoue car elle dispose d’un espace dans l’un des noms de dossier, c’est-à-dire 'VM VirtualBox.

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

S'il n'y a pas d'espace dans le nom du dossier ou du dossier, la commande fonctionnera même sans la citer, par exemple. après avoir remplacé les "VM VirtualBox" par des "VBoxVM"

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

Même si cette question est ancienne, notez que changer un UUID sur un disque dur virtuel dans un système Windows fera en sorte que Windows le traite comme une machine non activée (car il remarque le changement de disque) et demandera la réactivation!

3
aniston

Même solution que @ Al3x pour Windows x64, en cmd.exe:

cd %programfiles%\Oracle\VirtualBox

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

Ceci randomise l'UUID du disque. Astuce de pro: Cliquez avec le bouton droit de la souris sur le fichier .vdi en maintenant la touche Maj enfoncée et sélectionnez "Copier comme chemin" pour obtenir "full/path/to/.vdi" et activer l'édition rapide dans cmd.exe, puis faites un clic droit pour le coller.

3
masterxilo

Une autre alternative à votre solution d'origine serait d'utiliser le caractère d'échappement \ avant l'espace:

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