How do I delete a virtualbox machine in the GURU_MEDITATION error state?

VirtualizationVirtualboxVagrant

Virtualization Problem Overview


How do I delete a VirtualBox machine in the GURU_MEDITATION error state? Is it enough just to delete the directory while VirtualBox is not running?

EDIT: After posting, I deleted the entire directory that "Show in File Manager" navigates to.

It looks like:

Screenshot of Virtualbox Guru Meditation

Note that there is no power off, and even remove is greyed out. I believe this is the exact same as it looked even before I deleted the directory.

EDIT 2: I tried the command line poweroff after deleting the files. It hangs:

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

EDIT 3: It also fails to unregister it from the command-line:

> VBoxManage unregistervm wmf-vagrant_1354733432 --delete VBoxManage: > error: Cannot unregister the machine 'wmf-vagrant_1354733432' while it > is locked VBoxManage: error: Details: code VBOX_E_INVALID_OBJECT_STATE > (0x80bb0007), component Machine, interface IMachine, callee > nsISupports Context: "Unregister(fDelete ? > (CleanupMode_T)CleanupMode_DetachAllReturnHardDisksOnly : > (CleanupMode_T)CleanupMode_DetachAllReturnNone, > ComSafeArrayAsOutParam(aMedia))" at line 160 of file > VBoxManageMisc.cpp

Virtualization Solutions


Solution 1 - Virtualization

Kill the VBoxHeadless process and run "vagrant destroy"

Destroying vagrant and sending the kill signal with the "killall" command looks like:

killall -9 VBoxHeadless && vagrant destroy

Solution 2 - Virtualization

If you can't power off the machine from VirtualBox GUI, then try from the command line using vboxmanage command (VBoxManage on OS X), e.g.:

vboxmanage controlvm NAMEOFVM poweroff

Change NAMEOFVM with the name from vboxmanage list vms command.

then unregister and delete the VM:

vboxmanage unregistervm NAMEOFVM --delete

Or delete it manually:

rm -fr ~/"VirtualBox VMs/NAMEOFVM"

Solution 3 - Virtualization

I hit this problem. Eveything I read recommend that you should always manage the boxes via Virtual Box, not directly access files. But when I had an invalid box, the unregistervm command refused to delete it and vagrant destroy did not work. In the end the following process worked.

  1. Kill all running VBox* processes
  2. Delete the folder "boxname" from the folder "VirtualBox VMs"
  3. Edit the file "VirtualBox.xml" and remove the tag corresponding to the invalid box.

I then ran this command the verify the box was gone.

VBoxManage list vms

After that I was able to create a new vm with the same name.

Solution 4 - Virtualization

I had a VM that got in a similar state

$ 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

I looked for a process called VBoxHeadless, but it wasn't running.

I then ran ps and found this process with the same 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

Killing that process fixed the problem and VM started correctly after running vagrant up

Solution 5 - Virtualization

This is a script I use when I get desperate. It wipes as much trace of any VM from the machine as I can find:

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

Solution 6 - Virtualization

I am using Debian Wheezy on a 64-bit multiple-processor host. I was able to solve it eventually by removing all VirtualBox data (though you did not need to delete the Vagrant base box):

  1. Close Virtualbox if running
  2. sudo apt-get remove --purge virtualbox
  3. Move or delete ~/.VirtualBox and ~/VirtualBox\ VMs/. If you're not sure, back them up to a safe place.
  4. Restart.
  5. Reinstall virtualbox.
  6. Use virtualbox/vagrant as normal.

There may be a less disruptive way (e.g. removing only parts of these directories). In my case, fortunately I was using only one VM at the time.

Solution 7 - Virtualization

In my case, I wanted to delete ALL Vagrant boxes I currently have on my system by a command line, I did that by:

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

Of course, after making sure no further process is attached any more:

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

Solution 8 - Virtualization

On windows 10, i solved this problem setting Default firewall configurations back.

Hope it helps...

Solution 9 - Virtualization

I've been struggling with frozen Virtual Box instances created earlier using Vagrant. Luckily found a solution mentioned in similar ticket

so, to recap, if your getting Timeout error or Vagrant complaining it can't provision or any other kind of related issue with Virtual Box try:

  1. List virtual box instances first: VmboxManage list vms
  2. Stop the virtual box instances using id|names of previous command: VBoxManage startvm VMNAME/id --type emergencystop
  3. List vagrant boxes with vagrant box list
  4. Remove one or more causing issues vagrant boxes: vagrant remove box ${box-name}
  5. Afterwards, try vagrant up again and hopefully you will be back to business.

Good luck!

Solution 10 - Virtualization

Open the task manager or system monitor and hover with the mouse over the VBoxHeadless to see the name of the VM and kill the process. Now you can remove the VM with the VirtualBox Manager GUI.

enter image description here

Solution 11 - Virtualization

You can use below command to delete VM from vritual box-

vagrant destroy

And use below command to create VM and start again-

vagrant up

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMatthew FlaschenView Question on Stackoverflow
Solution 1 - VirtualizationjonathanView Answer on Stackoverflow
Solution 2 - VirtualizationkenorbView Answer on Stackoverflow
Solution 3 - VirtualizationWill GlassView Answer on Stackoverflow
Solution 4 - VirtualizationGianfranco P.View Answer on Stackoverflow
Solution 5 - VirtualizationianmiellView Answer on Stackoverflow
Solution 6 - VirtualizationMatthew FlaschenView Answer on Stackoverflow
Solution 7 - VirtualizationHMagdyView Answer on Stackoverflow
Solution 8 - VirtualizationoviniciusfeitosaView Answer on Stackoverflow
Solution 9 - VirtualizationArtem KozlenkovView Answer on Stackoverflow
Solution 10 - VirtualizationYorubaView Answer on Stackoverflow
Solution 11 - VirtualizationAzam KhanView Answer on Stackoverflow