Wie lösche ich eine Virtualbox-Maschine im Fehlerzustand GURU_MEDITATION?


69

Wie lösche ich eine VirtualBox-Maschine im Fehlerzustand GURU_MEDITATION? Reicht es aus, nur das Verzeichnis zu löschen, während VirtualBox nicht ausgeführt wird?

BEARBEITEN: Nach dem Posten habe ich das gesamte Verzeichnis gelöscht, in das "Im Dateimanager anzeigen" navigiert.

Es sieht aus wie:

Screenshot der Virtualbox Guru Meditation

Beachten Sie, dass das Gerät nicht ausgeschaltet ist und sogar das Entfernen ausgegraut ist. Ich glaube, das ist genau das gleiche, wie es aussah, noch bevor ich das Verzeichnis gelöscht habe.

EDIT 2: Ich habe versucht, die Befehlszeile auszuschalten, nachdem ich die Dateien gelöscht habe. Es hängt:

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

EDIT 3: Es kann auch nicht von der Befehlszeile abgemeldet werden:

VBoxManage unregistervm wmf-vagrant_1354733432 - VBoxManage löschen: Fehler: Die Registrierung der Maschine 'wmf-vagrant_1354733432' kann nicht aufgehoben werden, solange sie gesperrt ist. VBoxManage: Fehler: Details: Code VBOX_E_INVALID_OBJECT_STATE (0x80 fDelete? (CleanupMode_T) CleanupMode_DetachAllReturnHardDisksOnly: (CleanupMode_T) CleanupMode_DetachAllReturnNone, ComSafeArrayAsOutParam (aMedia)) "in Zeile 160 der Datei VBoxManageMisc.cpp


Wenn Sie es verschieben möchten, geben Sie bitte SuperUser an.
Matthew Flaschen

1
Ich denke jedoch, dass dies mit der Programmierung zusammenhängt, da ich es mit vagrant verwende, einem Tool speziell für Entwickler.
Matthew Flaschen

1
Ok, es scheint, dass ich mich schwer geirrt habe. Haben Sie Zugriff auf die Befehlszeile? Kannst du es versuchen VBoxManage controlvm <vm> poweroff? VBoxManage list vmsgibt Ihnen eine Liste der vorhandenen virtuellen Maschinen.
Edu

Bitte wieder öffnen. Wenn Sie migrieren möchten, migrieren Sie zu Superuser.
Matthew Flaschen

10
Durch das Beenden des VBoxHeadlessProzesses (unter OSX) konnte ich vagrant destroyerfolgreich ausgeführt werden und diese Sperre verlassen. Ich habe ps aux | grep -i virtualboxes gefunden.
Stephen Emslie

Antworten:


140

Beenden Sie den VBoxHeadless-Prozess und führen Sie " Vagrant Destroy " aus.

Das Zerstören von Vagabunden und das Senden des Kill-Signals mit dem Befehl "killall" sieht folgendermaßen aus:

killall -9 VBoxHeadless && vagrant destroy


1
+1 Die Verwendung der API oder von VBoxManage schlägt häufig mit Sperrausnahmen usw. fehl. Dies ist (leider) die einzige 100% zuverlässige Methode, die ich zum Beenden von VBox-VMs gefunden habe.
Steve Cook

3
Wenn Sie mehrere Computer ausführen, müssen Sie nur den einen Prozess beenden, der dem Computer zugeordnet ist, den Sie zerstören möchten.
Andrew Miner

wie man es tötet? Welcher Port läuft?
Andilabs

10
Um es unter OS X zu töten: ps aux | grep -i virtualboxdann kill -9 <PID>und danachvagrant destroy
andilabs

2
auf osx hat killall -9 VBoxHeadlessdann vagrant destroygut für mich
funktioniert

13

Wenn Sie den Computer nicht über die VirtualBox-Benutzeroberfläche ausschalten können, versuchen Sie es über die Befehlszeile mit dem vboxmanageBefehl ( VBoxManageunter OS X), z.

vboxmanage controlvm NAMEOFVM poweroff

Ändern Sie NAMEOFVMmit dem Namen vom vboxmanage list vmsBefehl.

Heben Sie dann die Registrierung auf und löschen Sie die VM:

vboxmanage unregistervm NAMEOFVM --delete

Oder löschen Sie es manuell:

rm -fr ~/"VirtualBox VMs/NAMEOFVM"

2
(+1) unter Linux hast du auch vboxmanage(Kleinbuchstaben) also benutze ich: vboxmanage unregistervm --delete <vm-name>(ein bisschen Kosmetik)
Azbarcea

10

Ich habe dieses Problem getroffen. Alles, was ich lese, empfiehlt, dass Sie die Boxen immer über Virtual Box verwalten und nicht direkt auf Dateien zugreifen. Aber als ich eine ungültige Box hatte, weigerte sich der Befehl unregistervm, sie zu löschen, und die Zerstörung von Vagabunden funktionierte nicht. Am Ende funktionierte der folgende Prozess.

  1. Beenden Sie alle laufenden VBox * -Prozesse
  2. Löschen Sie den Ordner "boxname" aus dem Ordner "VirtualBox VMs".
  3. Bearbeiten Sie die Datei "VirtualBox.xml" und entfernen Sie das Tag, das dem ungültigen Feld entspricht.

Ich habe dann diesen Befehl ausgeführt, um zu überprüfen, ob die Box verschwunden ist.

VBoxManage list vms

Danach konnte ich eine neue VM mit dem gleichen Namen erstellen.


3

Ich hatte eine VM, die sich in einem ähnlichen Zustand befand

$ vagrant up

Bringing machine 'tempu' up with 'virtualbox' provider...
==> mms: Checking if box 'hashicorp/precise64' is up to date...
==> mms: Resuming suspended VM...
==> mms: Booting VM...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

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

Stderr: VBoxManage: error: The machine 'temp-ubuntu' is already locked by a session (or being locked or unlocked)
VBoxManage: error: Details: code VBOX_E_INVALID_OBJECT_STATE (0x80bb0007), component Machine, interface IMachine, callee nsISupports
VBoxManage: error: Context: "LaunchVMProcess(a->session, sessionType.raw(), env.raw(), progress.asOutParam())" at line 592 of file VBoxManageMisc.cpp

Ich habe nach einem Prozess namens gesucht VBoxHeadless, der jedoch nicht ausgeführt wurde.

Ich lief dann psund fand diesen Prozess mit der gleichen VM-ID:

$ ps aux | grep -i virtualbox
user      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

Durch das Beenden dieses Prozesses wurde das Problem behoben und die VM wurde nach dem Ausführen ordnungsgemäß gestartet vagrant up


3

Dies ist ein Skript, das ich benutze, wenn ich verzweifelt bin. Es löscht so viele Spuren einer VM von der Maschine, wie ich finden kann:

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/* 

1

Ich verwende Debian Wheezy auf einem 64-Bit-Host mit mehreren Prozessoren. Ich konnte es schließlich lösen, indem ich alle VirtualBox-Daten entfernte (obwohl Sie die Vagrant-Basisbox nicht löschen mussten):

  1. Schließen Sie Virtualbox, wenn Sie ausgeführt werden
  2. sudo apt-get remove --purge virtualbox
  3. Verschieben oder löschen Sie ~ / .VirtualBox und ~ / VirtualBox \ VMs /. Wenn Sie sich nicht sicher sind, sichern Sie sie an einem sicheren Ort.
  4. Neu starten.
  5. Installieren Sie die Virtualbox neu.
  6. Verwenden Sie wie gewohnt virtualbox / vagrant.

Es kann einen weniger störenden Weg geben (z. B. nur Teile dieser Verzeichnisse entfernen). In meinem Fall habe ich zum Glück nur eine VM verwendet.


1

In meinem Fall wollte ich ALLE Vagrant-Boxen, die ich derzeit auf meinem System habe, über eine Befehlszeile löschen. Ich tat dies durch:

$ vagrant box list | cut -f 1 -d ' ' | xargs -L 1 vagrant box remove -f --all

Natürlich, nachdem sichergestellt wurde, dass kein weiterer Prozess mehr angehängt ist:

killall -9 VBoxHeadless && vagrant destroy
No matching processes belonging to you were found

0

Unter Windows 10 habe ich dieses Problem behoben, indem ich die Standard-Firewall-Konfigurationen zurückgesetzt habe.

Ich hoffe es hilft...


0

Ich habe mit eingefrorenen Virtual Box-Instanzen zu kämpfen, die zuvor mit Vagrant erstellt wurden. Zum Glück fand eine Lösung in ähnlichen Ticket erwähnt

Um es noch einmal zusammenzufassen: Wenn Sie einen Timeout-Fehler erhalten oder Vagrant sich darüber beschwert, dass er nicht bereitgestellt werden kann, oder ein anderes verwandtes Problem mit Virtual Box:

  1. Listen Sie zuerst die Instanzen der virtuellen Box auf: VmboxManage list vms
  2. Stoppen Sie die Instanzen der virtuellen Box mit den ID-Namen des vorherigen Befehls: VBoxManage startvm VMNAME/id --type emergencystop
  3. Liste vagabundierende Kisten mit vagrant box list
  4. Entfernen Sie ein oder mehrere Vagabundkästen, die Probleme verursachen: vagrant remove box ${box-name}
  5. Versuchen Sie es anschließend vagrant uperneut und hoffen Sie, dass Sie wieder im Geschäft sind.

Viel Glück!


0

Öffnen Sie den Task-Manager oder Systemmonitor und bewegen Sie den Mauszeiger über die VBoxHeadless, um den Namen der VM anzuzeigen und den Prozess abzubrechen. Jetzt können Sie die VM mit der VirtualBox Manager-Benutzeroberfläche entfernen.

Geben Sie hier die Bildbeschreibung ein


-1

Sie können den folgenden Befehl verwenden, um die VM aus der virtuellen Box zu löschen.

vagrant destroy

Verwenden Sie den folgenden Befehl, um eine VM zu erstellen und erneut zu starten.

vagrant up
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.