Essayer d'ouvrir une configuration de machine virtuelle qui a le même UUID qu'une machine virtuelle existante

26

Lorsque j'essaie d'ajouter deux machines virtuelles VirtualBox qui ont été copiées à l'origine (via une simple copie de fichier) à partir de la même source, lors de l'ajout de la seconde, je reçois le message

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

(Oui, les machines auraient dû être clonées au lieu d'une simple copie de fichier, mais il est trop tard à ce stade.)

Tgr
la source

Réponses:

40

Vous pouvez utiliser VBoxManage internalcommands sethduuid <VDI/VMDK file>(Exécuter à partir du répertoire d'installation de VBox) pour changer l'UUID HD, mais cela a deux défauts: il ne met pas à jour le .vboxfichier et il ne change pas l'UUID de la machine (je n'ai trouvé aucun moyen de le faire avec VBoxManage ), juste l'UUID HD.

Les éléments suivants ont fonctionné pour moi (Win 7, version la plus récente de VirtualBox):

  1. exécuté VBoxManage internalcommands sethduuid <VDI/VMDK file> deux fois (la première fois est juste pour générer facilement un UUID, vous pouvez utiliser n'importe quelle autre méthode de génération d'UUID à la place)
  2. ouvrir le .vboxfichier dans un éditeur de texte
  3. remplacez l'UUID trouvé <Machine uuid="{...}"par l'UUID que vous avez obtenu lors de votre sethduuidpremière exécution
  4. remplacez l'UUID trouvé dans <HardDisk uuid="{...}"et en <Image uuid="{}"(vers la fin) par l'UUID que vous avez obtenu lors de votre sethduuiddeuxième exécution

Vous pouvez ensuite ajouter la machine virtuelle. Pas une solution très propre, mais ne semble pas poser de problème.

Tgr
la source
1
Cela a fonctionné pour moi, mais j'avais également un DVD "inséré" dans la machine virtuelle que je copiais manuellement. Lorsque j'ai édité mon fichier .vbox, j'ai dû changer <DVDImages>...</DVDImages>pour simplement <DVDImages />"éjecter" le DVD avec l'UUID en double.
JPhi1618
Notez que si la VM a des instantanés, vous devrez également faire les mêmes étapes sur les fichiers vdi dans le dossier "Instantanés".
laurent
6

J'ai trouvé un moyen plus simple de le faire.

Clonez la machine virtuelle existante. Cela crée une nouvelle version avec vraisemblablement un nouvel uuid, mais à tous les autres égards, c'est la même machine.

Copiez ensuite celui que vous souhaitez ajouter dans votre \ utilisateur (votre nom) \ Virtual Box VMs \ (ou là où se trouve l'emplacement de vos machines virtuelles) et écrasez tous les fichiers existants pour remplacer la machine existante.

Je voudrais sauvegarder la machine existante d'abord au cas où, avant de le faire, mais cela a très bien fonctionné ici. L'utiliser pour revenir à une sauvegarde antérieure d'une machine virtuelle tout en conservant la version existante en tant que clone.

Robert Walker
la source
si vous avez suffisamment d'espace disque, c'est le moyen le plus simple, merci Robert.
sddk
Si quelqu'un le fait - ils doivent s'assurer que le fichier vbox a une balise uuid matérielle qui correspond à la machine uuid :: <hardware uuid = "{...}">, alors ils peuvent changer l'uuid du disque dur et l'uuid de la machine sans quelque problème que ce soit. <hardware uuid = "{...}">
StixO
2

Je me rends compte que c'est un ancien message mais j'ai rencontré cette erreur. Je l'ai résolu en:

  1. Ouvrez Virtual Box Manager
  2. Clic droit sur la machine virtuelle dans Virtual Box Manager
  3. Cliquez sur "Supprimer"
  4. Une fenêtre apparaîtra. Choisissez "Supprimer uniquement" qui supprimera simplement toutes les traces de la boîte virtuelle du gestionnaire de boîte virtuelle
  5. Fermez le Virtual Box Manager
  6. À l'aide du gestionnaire de fichiers Linux, accédez au dossier contenant la machine virtuelle
  7. Supprimer (ou déplacer) tout SAUF le fichier du disque dur virtuel .vmdk
  8. Ouvrez Virtual Box Manager
  9. Cliquez sur "Machine"
  10. Cliquez sur "Nouveau"
  11. Nommez la nouvelle machine (j'ai utilisé le même nom que j'ai utilisé à l'origine)

    REMARQUE: Le nom de la machine deviendra le nom du répertoire qui contiendra la machine virtuelle, choisissez donc judicieusement et notez également que si vous souhaitez que le fichier .vmdk réside dans le nouveau répertoire, des étapes supplémentaires seront nécessaires dans Virtual Box. Directeur

  12. Sélectionnez le type et la version appropriés pour la machine virtuelle qui rencontrait le problème et cliquez sur "Suivant"
  13. Sélectionnez la taille de mémoire que vous souhaitez que la machine virtuelle ait allouée et cliquez sur "Suivant"
  14. Sélectionnez "Utiliser et fichier de disque dur virtuel existant" et sélectionnez-le en accédant à son emplacement
  15. Sélectionnez "Créer"

Suivez simplement les invites à partir de là, puis démarrez la machine virtuelle.

Tout fonctionne bien, aucune réactivation des fenêtres ou etc. n'est requise.

Dale Reynolds
la source
1

Vous pouvez également cloner la machine existante, puis accéder aux paramètres et modifier le stockage pour utiliser le .vmdk que vous aviez copié précédemment.

Toby
la source
1

Si vous ne parvenez pas à lancer en raison de cette erreur, il suffit de «supprimer ...» l'entrée de «Oracle VM VirtualBox Manager» . Cela effacera le conflit et vous pourrez ensuite ouvrir la machine virtuelle à partir de son nouvel emplacement.

... À ce stade, vous pouvez effectuer un clone si c'est ce que vous souhaitez. Dans mon cas, aucun effort supplémentaire n'a été nécessaire car je n'avais plus besoin de l'emplacement d'origine de la machine virtuelle.

nobar
la source
C'est de loin la solution la plus simple, et pas seulement cela, cela fonctionne.
shmu
-1

L'utilisateur TGR a bien compris, mais j'ai dû apporter une modification supplémentaire: dans la vbox XML, je devais changer l'uuid de l'image pour qu'il corresponde à l'uuid du HardDisk (le deuxième UUID généré sur la ligne de commande)

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

J'ai trouvé un autre moyen plus simple que tout autre. Il vous suffit de supprimer la machine virtuelle de l'interface de Virtual Box (s'il vous demande si vous souhaitez supprimer les fichiers de la VM, ne répondez PAS !, ou vous perdrez la VM). Et puis allez dans le fichier .vbox et ouvrez-le (avec Virtual Box). Cela devrait fonctionner car vous avez supprimé l'UUID (tout en supprimant la machine virtuelle). Au moins ça a marché pour moi ...

Marouan Kouitra
la source