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?
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.
Ce qui suit a fonctionné pour moi:
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)
ouvrez le fichier . vbox dans un éditeur de texte
remplacez l'UUID trouvé dans Machine uuid = "{...}" par l'UUID que vous avez obtenu lors de la première utilisation de sethduuid
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
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.
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"
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.
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
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!
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.
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