72 votes

Comment supprimer une machine virtualbox dans l'état d'erreur GURU_MEDITATION?

Comment supprimer une machine VirtualBox dans l'état d'erreur GURU_MEDITATION ? Suffit-il de supprimer le répertoire lorsque VirtualBox ne fonctionne pas ?

ÉDIT : Après avoir posté, j'ai supprimé l'intégralité du répertoire vers lequel "Afficher dans le gestionnaire de fichiers" navigue.

Voici à quoi cela ressemble :

Capture d'écran de l'erreur Virtualbox Guru Meditation

À noter qu'il n'y a pas d'extinction de l'alimentation et même la suppression est grisée. Je pense que c'est exactement comme cela qu'il apparaissait même avant que je supprime le répertoire.

ÉDIT 2 : J'ai essayé la commande d'extinction en ligne de commande après avoir supprimé les fichiers. Cela reste bloqué :

vboxmanage controlvm wmf-vagrant_1354733432 poweroff 0%...10%...20%...

ÉDIT 3 : Il échoue également à le désenregistrer depuis la ligne de commande :

VBoxManage unregistervm wmf-vagrant_1354733432 --delete VBoxManage: error: Impossible de désenregistrer la machine 'wmf-vagrant_1354733432' tant qu'elle est verrouillée VBoxManage: error: Détails : code VBOX_E_INVALID_OBJECT_STATE (0x80bb0007), composant Machine, interface IMachine, appelant nsISupports Contexte : "Unregister(fDelete ? (CleanupMode_T)CleanupMode_DetachAllReturnHardDisksOnly : (CleanupMode_T)CleanupMode_DetachAllReturnNone, ComSafeArrayAsOutParam(aMedia))" à la ligne 160 du fichier VBoxManageMisc.cpp

0 votes

Si vous voulez le déplacer, veuillez spécifier SuperUser.

1 votes

Cependant, je pense que cela est lié à la programmation, car je l'utilise avec Vagrant, un outil spécifiquement conçu pour les développeurs.

1 votes

D'accord, il semble que je me suis gravement trompé. Avez-vous accès à la ligne de commande? Pouvez-vous essayer VBoxManage controlvm poweroff? VBoxManage list vms vous donne la liste des machines virtuelles existantes.

145voto

jonathan Points 662

Tuez le processus VBoxHeadless et exécutez "vagrant destroy"

Détruire vagrant et envoyer le signal de kill avec la commande "killall" ressemble à :

killall -9 VBoxHeadless && vagrant destroy

1 votes

+1 Utiliser l'API ou VBoxManage échouera souvent avec des exceptions de verrouillage, etc. C'est malheureusement la seule manière fiable à 100 % que j'ai trouvée pour arrêter les machines virtuelles VBox.

4 votes

Si vous exécutez plusieurs machines, vous n'avez besoin de tuer que le processus associé à la machine que vous souhaitez détruire.

0 votes

Comment le tuer? Sur quel port fonctionne-t-il?

17voto

kenorb Points 2464

Si vous ne pouvez pas éteindre la machine à partir de l'interface graphique de VirtualBox, essayez depuis la ligne de commande en utilisant la commande vboxmanage (VBoxManage sur OS X), par exemple :

vboxmanage controlvm NOMDEVIRTMACHINE éteindre

Remplacez <code>NOMDEVIRTMACHINE</code> par le nom obtenu à partir de la commande <code>vboxmanage list vms</code>.

Ensuite, désenregistrez et supprimez la machine virtuelle :

vboxmanage unregistervm NOMDEVIRTMACHINE --delete

Ou supprimez-la manuellement :

rm -fr ~/"VirtualBox VMs/NOMDEVIRTMACHINE"

2 votes

(+1) sur linux vous avez aussi vboxmanage (en minuscules), donc, j'utilise : vboxmanage unregistervm --delete (un peu de cosmétique)

10voto

Will Glass Points 1862

J'ai rencontré ce problème. Tout ce que j'ai lu recommande que vous devriez toujours gérer les boîtes via Virtual Box, ne pas accéder directement aux fichiers. Mais quand j'ai eu une boîte non valide, la commande unregistervm a refusé de la supprimer et vagrant destroy n'a pas fonctionné. Finalement, le processus suivant a fonctionné.

  1. Tuer tous les processus VBox* en cours d'exécution
  2. Supprimer le dossier "nomdelaboîte" du dossier "VirtualBox VMs"
  3. Modifier le fichier "VirtualBox.xml" et supprimer la balise correspondant à la boîte non valide.

J'ai ensuite exécuté cette commande pour vérifier que la boîte avait disparu.

VBoxManage list vms

Après cela, j'ai pu créer un nouveau vm avec le même nom.

5voto

GianPaJ Points 1749

J'avais une machine virtuelle qui s'est retrouvée dans un état similaire

$ vagrant up

Démarrage de la machine 'tempu' avec le fournisseur 'virtualbox'...
==> mms: Vérification si la box 'hashicorp/precise64' est à jour...
==> mms: Reprise de la machine suspendue...
==> mms: Démarrage de la machine...
Une erreur s'est produite lors de l'exécution de `VBoxManage`, une interface en ligne de commande utilisée par Vagrant pour contrôler VirtualBox. La commande et les erreurs sont indiquées ci-dessous.

Commande: ["startvm", "9fcf2203-d4b3-47a1-a307-61bfa580bd28", "--type", "headless"]

Stderr: VBoxManage: error: La machine 'temp-ubuntu' est déjà verrouillée par une session (ou en cours de verrouillage ou de déverrouillage)
VBoxManage: error: Détails: code d'erreur VBOX_E_INVALID_OBJECT_STATE (0x80bb0007), composant Machine, interface IMachine, appelant nsISupports
VBoxManage: error: Contexte: "LaunchVMProcess(a->session, sessionType.raw(), env.raw(), progress.asOutParam())" à la ligne 592 du fichier VBoxManageMisc.cpp

J'ai cherché un processus nommé VBoxHeadless, mais il n'était pas en cours d'exécution.

J'ai ensuite exécuté la commande ps et j'ai trouvé ce processus avec le même id de machine virtuelle :

$ ps aux | grep -i virtualbox
utilisateur      63466   0.0  0.1  2523608   8396   ??  S     9:36am   0:02.67 /Applications/VirtualBox.app/Contents/MacOS/VBoxManage showvminfo 9fcf2203-d4b3-47a1-a307-61bfa580bd28 --machinereadable

Arrêter ce processus a corrigé le problème et la machine virtuelle a démarré correctement après avoir exécuté vagrant up

3voto

ianmiell Points 151

Ceci est un script que j'utilise lorsque je suis désespéré. Il efface autant de traces de toute VM de la machine que je peux trouver:

VBoxManage list runningvms | awk '{print $2}'  | xargs --no-run-if-empty -t -n1 -IXXX VBoxManage controlvm XXX poweroff                                                           
VBoxManage list vms | awk '{print $2}'  | xargs --no-run-if-empty -t -n1 VBoxManage unregistervm                                                                                  
killall -9 VBoxHeadless                                                                                                                                                           
rm -rf ~/Virtualbox\ VMs/*

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X