72

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

Matthew Flaschen
  • 278,309
  • 50
  • 514
  • 539

12 Answers12

145

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

electblake
  • 2,027
  • 18
  • 25
jonathan
  • 2,513
  • 2
  • 17
  • 13
17

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"
kenorb
  • 155,785
  • 88
  • 678
  • 743
  • 2
    (+1) on linux you have also `vboxmanage` (lowercase) so, I use: `vboxmanage unregistervm --delete ` (a little bit of cosmetics) – azbarcea Jun 11 '16 at 18:18
10

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.

Will Glass
  • 4,800
  • 6
  • 34
  • 44
4

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

Gianfranco P.
  • 10,049
  • 6
  • 51
  • 68
3

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/* 
ianmiell
  • 151
  • 1
  • 4
1

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.

Matthew Flaschen
  • 278,309
  • 50
  • 514
  • 539
1

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
HMagdy
  • 3,029
  • 33
  • 54
0

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

Hope it helps...

oviniciusfeitosa
  • 915
  • 1
  • 11
  • 12
0

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!

Artem Kozlenkov
  • 975
  • 9
  • 11
0

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

Yoruba
  • 2,572
  • 22
  • 26
0
  1. Run vagrant global-status
  2. Identify the vm id
  3. Run vagrant destroy [vm id]
Tyler2P
  • 2,324
  • 26
  • 22
  • 31
alela
  • 1
  • 1
-1

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
Azam Khan
  • 85
  • 4
  • 11