How do I delete a virtualbox machine in the GURU_M

2019-01-30 07:48发布

问题:

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:

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

回答1:

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



回答2:

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.



回答3:

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"


回答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



回答5:

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


回答6:

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.



回答7:

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

Hope it helps...



回答8:

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


回答9:

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