如何在GURU_MEDITATION错误状态下删除VirtualBox机器?仅在VirtualBox未运行时删除目录是否足够?
编辑:发布后,我删除了“在文件管理器中显示”导航到的整个目录。
看起来像:
请注意,没有电源关闭,甚至删除都是灰色的。我相信这与我删除目录之前的情况完全相同。
编辑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
答案 0 :(得分:124)
杀死VBoxHeadless进程并运行“vagrant destroy”
使用“killall”命令销毁vagrant并发送kill信号,如下所示:
killall -9 VBoxHeadless && vagrant destroy
答案 1 :(得分:10)
我遇到了这个问题。我读过的Eveything建议您应该始终通过Virtual Box管理这些框,而不是直接访问文件。但是当我有一个无效的盒子时,unregistervm命令拒绝删除它,并且vagrant destroy不起作用。最后,以下过程有效。
然后我运行此命令验证框已消失。
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基本框):
可能存在破坏性较小的方式(例如,仅删除这些目录的一部分)。就我而言,幸运的是我当时只使用了一台虚拟机。
答案 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相关的任何其他类型的问题,请尝试:
VmboxManage list vms
VBoxManage startvm VMNAME/id --type emergencystop
vagrant box list
的无业游民框vagrant remove box ${box-name}
vagrant up
,希望您能重新开始工作。祝你好运!
答案 9 :(得分:0)
答案 10 :(得分:-1)
您可以使用以下命令从vritual框中删除VM -
vagrant destroy
使用以下命令创建VM并重新开始 -
vagrant up