彻底从命令行中删除Vagrant VirtualBox盒子

4
每当一个 Vagrant 盒子安装失败时,它会在 VirtualBox 中留下一些混乱。在 Vagrantfile 中设置的转发端口没有被清理干净。vagrant halt 无法工作,因为该盒子未启动,而 vagrant destroy 有时可以工作,这取决于在挂起之前盒子的安装进展到了什么程度。
所以每次我测试新的设置时,vagrant 都会说要转发的端口已经在使用中。我需要更改要转发的端口,然后安装继续进行,只是在稍后的某个时候挂起并将端口扣为人质。现在我没有任何可以使用的端口(可从远程访问),所以我想停止使用那些被堵塞的端口。
我可能可以通过重新启动来解决这个问题,但是目前无法重新启动该机器。
发出“删除该死的东西”命令是不起作用的: $ VBoxManage list vms
"<inaccessible>" {aaaa-aa-aa-aa-aaaa}
"<inaccessible>" {bbbb-bb-bb-bb-bbbb}
"vagrant_default_cccc_cc" {cccc-cc-cc-cc-cccc}
$ VBoxManage unregistervm aaaa-aa-aa-aa-aaaa --delete
发生VBoxManage错误: 对象未准备好 VBoxManage错误详细信息:code E_ACCESSDENIED (0x80070005),组件Machine,接口IMachine,调用者nsISupports VBoxManage错误上下文:"Delete(ComSafeArrayAsInParam(aMedia),pProgress.asOutParam())" ,位于文件VBoxManageMisc.cpp的第165行 $ VBoxManage unregistervm bbbb-bb-bb-bb-bbbb --delete
发生VBoxManage错误: 对象未准备好 VBoxManage错误详细信息:code E_ACCESSDENIED (0x80070005),组件Machine,接口IMachine,调用者nsISupports VBoxManage错误上下文:"Delete(ComSafeArrayAsInParam(aMedia),pProgress.asOutParam())" ,位于文件VBoxManageMisc.cpp的第165行 $ VBoxManage unregistervm cccc-cc-cc-cc-cccc --delete
VBoxManage错误: 无法注销机器'vagrant_default_cccc_cc',因为它被锁定 VBoxManage错误详细信息:code VBOX_E_INVALID_OBJECT_STATE (0x80bb0007),组件Machine,接口IMachine,调用者nsISupports VBoxManage错误上下文:"Unregister(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。
1个回答

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


谢谢。这正是我需要的。 - Redsandro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接