每次Vagrant
框无法安装时,都会在VirtualBox
中留下一些混乱。在Vagrantfile
中设置的转发端口不会被清理。 vagrant halt
无法正常工作,因为该框未启动,vagrant destroy
有时可以正常工作,具体取决于挂机前挂机的安装距离。
所以每次我测试一个新的设置时,vagrant说要转发的端口已经被使用了。我需要将端口更改为转发,然后安装继续,只是稍后挂起并将端口人质置于遗忘状态。现在我没有任何可以使用的端口(可以远程访问),所以我只想放弃这些端口便秘。
我可以通过重启修复此问题,但是现在无法重启机器。
发出"只是删除该死的东西" 命令不起作用:
$ VBoxManage list vms
"<难以接近>" {AAAA-AAAA-AA-AAAA}
"<难以接近>" {BBBB-BBBB-BB-BBBB}
" vagrant_default_cccc_cc" {CCCC-CCCC-CC-CCCC}
$ VBoxManage unregistervm aaaa-aa-aa-aa-aaaa -delete
VBoxManage:错误:对象未准备好 VBoxManage:错误:详细信息:代码E_ACCESSDENIED(0x80070005),组件机器,接口IMachine,被调用者nsISupports
VBoxManage:错误:上下文:"删除(ComSafeArrayAsInParam(aMedia),pProgress.asOutParam())"在VBoxManageMisc.cpp文件的第165行 $ VBoxManage unregistervm bbbb-bb-bb-bb-bbbb --delete
VBoxManage:错误:对象未准备好 VBoxManage:错误:详细信息:代码E_ACCESSDENIED(0x80070005),组件机器,接口IMachine,被调用者nsISupports
VBoxManage:错误:上下文:"删除(ComSafeArrayAsInParam(aMedia),pProgress.asOutParam())"在VBoxManageMisc.cpp文件的第165行 $ VBoxManage unregistervm cccc-cc-cc-cc-cccc --delete
VBoxManage:错误:无法取消注册计算机' vagrant_default_cccc_cc'虽然它被锁定了 VBoxManage:错误:详细信息:代码VBOX_E_INVALID_OBJECT_STATE(0x80bb0007),组件机器,接口IMachine,被调用者nsISupports
VBoxManage:错误:上下文:"取消注册(fDelete?(CleanupMode_T)CleanupMode_DetachAllReturnHardDisksOnly:(CleanupMode_T)CleanupMode_DetachAllReturnNone,ComSafeArrayAsOutParam(aMedia))"在VBoxManageMisc.cpp文件的第160行 $
(不,sudo
也没有做到这一点。)
如何在不重新启动的情况下尽可能轻松地完全根除和销毁机器?或者,至少(或更好)阻止VirtualBox
将端口转发到破损的盒子?我可能不应该删除和-rf
只是因为还有一些盒子运行正常。
运行Vagrant和VirtualBox的服务器在Ubuntu 13.10
上运行。尽管客人可能无关紧要,但仍尝试运行Ubuntu 12.10
。
答案 0 :(得分:3)
$ ps axu|grep VBoxHeadless
jamie 4205 0.3 1.2 1592676 208592 ? Sl Apr10 7:08 /usr/lib/virtualbox/VBoxHeadless --comment apt-cacher_default_1396256757 --startvm a8c2157a-f86f-491d-a703-74e49b4348fb --vrde config
jamie 11390 48.7 1.4 2823080 231788 ? Sl Apr10 845:49 /usr/lib/virtualbox/VBoxHeadless --comment vandeliverytest_default_1397122355 --startvm a06a0a8c-a645-4270-89f4-992566e111f0 --vrde config
jamie 22226 0.0 0.0 13596 936 pts/3 S+ 16:31 0:00 grep --color=auto VBoxHeadless
“startvm”是那些挂起的进程,无法使用普通的vagrant命令停止。向进程发出kill -TERM
命令,它们应该停止
如果不起作用,请升级为kill -KILL