从命令行完全删除Vagrant VirtualBox框

时间:2014-04-11 15:25:41

标签: linux ubuntu networking virtualbox vagrant

每次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

1 个答案:

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