【发布时间】:2014-04-11 15:25:41
【问题描述】:
每次Vagrant 盒子安装失败时,都会在VirtualBox 中留下一些混乱。在Vagrantfile 中设置的转发端口不会被清理。 vagrant halt 不起作用,因为盒子没有起来,vagrant destroy 有时会起作用,这取决于盒子在挂起之前安装了多远。
所以每次我测试新设置时,vagrant 都会说要转发的端口已经在使用中。我需要将端口更改为转发,然后继续安装,只是稍后挂起并将端口作为人质被遗忘。现在我没有任何可以使用的端口(可以远程访问),所以我只想停止让这些端口便秘。
我可以通过重新启动来解决此问题,但现在无法重新启动机器。
发出“只删除该死的东西”命令不起作用:
$ VBoxManage 列出虚拟机
“”{aaaa-aa-aa-aa-aaaa}
“”{bbbb-bb-bb-bb-bbbb}
“vagrant_default_cccc_cc”{cccc-cc-cc-cc-cccc}
$ VBoxManage unregistervm aaaa-aa-aa-aa-aaaa --delete
VBoxManage:错误:对象未准备好
VBoxManage:错误:详细信息:代码 E_ACCESSDENIED (0x80070005),组件机器,接口 IMachine,被调用者 nsISupports
VBoxManage: 错误: 上下文: "Delete(ComSafeArrayAsInParam(aMedia), pProgress.asOutParam())" 在文件 VBoxManageMisc.cpp 的第 165 行
$ VBoxManage unregistervm bbbb-bb-bb-bb-bbbb --delete
VBoxManage:错误:对象未准备好
VBoxManage:错误:详细信息:代码 E_ACCESSDENIED (0x80070005),组件机器,接口 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:错误:详细信息:代码 VBOX_E_INVALID_OBJECT_STATE (0x80bb0007),组件机器,接口 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。
【问题讨论】:
标签: linux ubuntu networking virtualbox vagrant