如何删除GURU_MEDITATION错误状态中的虚拟机?

时间:2012-12-07 19:32:42

标签: virtualization virtualbox vagrant

如何在GURU_MEDITATION错误状态下删除VirtualBox机器?仅在VirtualBox未运行时删除目录是否足够?

编辑:发布后,我删除了“在文件管理器中显示”导航到的整个目录。

看起来像:

Screenshot of Virtualbox Guru Meditation

请注意,没有电源关闭,甚至删除都是灰色的。我相信这与我删除目录之前的情况完全相同。

编辑2:我在删除文件后尝试了命令行poweroff。它挂起:

  

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

编辑3:它也无法从命令行取消注册:

  

VBoxManage unregistervm wmf-vagrant_1354733432 - 删除VBoxManage:   错误:无法取消注册机器'wmf-vagrant_1354733432'   已锁定VBoxManage:错误:详细信息:代码VBOX_E_INVALID_OBJECT_STATE   (0x80bb0007),组件机器,接口IMachine,被调用者   nsISupports上下文:“取消注册(fDelete?   (CleanupMode_T)CleanupMode_DetachAllReturnHardDisksOnly:   (CleanupMode_T)CleanupMode_DetachAllReturnNone,   ComSafeArrayAsOutParam(aMedia))“在文件的第160行   VBoxManageMisc.cpp

11 个答案:

答案 0 :(得分:124)

杀死VBoxHeadless进程并运行“vagrant destroy

使用“killall”命令销毁vagrant并发送kill信号,如下所示:

killall -9 VBoxHeadless && vagrant destroy

答案 1 :(得分:10)

我遇到了这个问题。我读过的Eveything建议您应该始终通过Virtual Box管理这些框,而不是直接访问文件。但是当我有一个无效的盒子时,unregistervm命令拒绝删除它,并且vagrant destroy不起作用。最后,以下过程有效。

  1. 杀死所有正在运行的VBox *进程
  2. 从“VirtualBox VMs”
  3. 文件夹中删除文件夹“boxname”
  4. 编辑文件“VirtualBox.xml”并删除与无效框对应的标记。
  5. 然后我运行此命令验证框已消失。

    VBoxManage list vms
    

    之后,我能够创建一个同名的新虚拟机。

答案 2 :(得分:8)

如果无法从VirtualBox GUI关闭机器电源,请使用vboxmanage命令(OS X上的VBoxManage)从命令行尝试,例如:

vboxmanage controlvm NAMEOFVM poweroff

使用NAMEOFVM命令中的名称更改vboxmanage list vms

然后取消注册并删除VM:

vboxmanage unregistervm NAMEOFVM --delete

或手动删除:

rm -fr ~/"VirtualBox VMs/NAMEOFVM"

答案 3 :(得分:3)

我有一个处于类似状态的虚拟机

$ 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

我查找了一个名为VBoxHeadless的进程,但它没有运行。

然后我运行ps并发现此过程使用相同的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

在运行vagrant up

后,杀死该流程解决了问题并且虚拟机已正确启动

答案 4 :(得分:3)

这是我绝望时使用的脚本。它可以从机器上擦除任何虚拟机的痕迹,我可以找到:

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

答案 5 :(得分:1)

我在64位多处理器主机上使用Debian Wheezy。我最终能够通过删除所有VirtualBox数据来解决它(尽管你不需要删除Vagrant基本框):

  1. 如果正在运行,请关闭Virtualbox
  2. sudo apt-get remove --purge virtualbox
  3. 移动或删除〜/ .VirtualBox和〜/ VirtualBox \ VMs /。如果您不确定,将它们备份到安全的地方。
  4. 重新启动。
  5. 重新安装virtualbox。
  6. 正常使用virtualbox / vagrant。
  7. 可能存在破坏性较小的方式(例如,仅删除这些目录的一部分)。就我而言,幸运的是我当时只使用了一台虚拟机。

答案 6 :(得分:0)

在Windows 10上,我解决了设置默认防火墙配置的问题。

希望它有所帮助...

答案 7 :(得分:0)

就我而言,我想通过命令行删除系统上当前拥有的所有Vagrant框,方法是:

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

当然,在确保不再附加任何其他过程之后:

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

答案 8 :(得分:0)

我一直在努力解决之前使用Vagrant创建的冻结Virtual Box实例的问题。 幸运地找到了similar ticket

中提到的解决方案

总结一下,如果您收到超时错误或Vagrant抱怨它无法提供或与Virtual Box相关的任何其他类型的问题,请尝试:

  1. 首先列出虚拟盒实例:VmboxManage list vms
  2. 使用上一个命令的ID |名称停止虚拟盒实例:VBoxManage startvm VMNAME/id --type emergencystop
  3. 列出vagrant box list的无业游民框
  4. 删除一个或多个引起问题的无用信息框:vagrant remove box ${box-name}
  5. 然后,再次尝试vagrant up,希望您能重新开始工作。

祝你好运!

答案 9 :(得分:0)

打开任务管理器或系统监视器,然后将鼠标悬停在VBoxHeadless上,以查看VM的名称并终止该进程。 现在,您可以使用VirtualBox Manager GUI删除虚拟机。

enter image description here

答案 10 :(得分:-1)

您可以使用以下命令从vritual框中删除VM -

vagrant destroy

使用以下命令创建VM并重新开始 -

vagrant up