最近我开始使用在 VirtualBox v4.3.14 上运行的 Vagrant v1.6.5 进行 PHP 开发。PhpAcademy 的这个教程,我能够在运行 Windows 7 Professional x64 的 Windows 机器上设置并运行 Vagrant。
第二天,我想运行 vagrant,但它说它卡在了中止状态。谷歌搜索了一下,结果找到了Serverfault 上的这个问题,这是我能找到的唯一合理的链接。尝试了那里列出的解决方案,结果并没有什么不同,它仍然停留在放弃状态。
然后我尝试删除虚拟机并重新创建它,结果虚拟机卡在了关机状态。然后我又尝试删除 Vagrantfile 并重新创建它……结果一样。
为什么会发生这种情况?我该如何解决?
编辑1
根据要求,Vagrant通过命令行输出的日志消息是:
使用“virtualbox”提供商启动机器“default”...
==> default:检查框“ubuntu/trusty64”是否是最新的...
==> default:清除任何先前设置的网络接口...
==> default:根据配置准备网络接口...
default:适配器 1:nat
==> default:转发端口...
default:80 => 8081(适配器 1)
default:22 => 2222(适配器 1)
==> default:启动 VM...
==> default:等待机器启动。这可能需要几分钟……
客户机在等待启动时进入了无效状态。有效状态为“正在启动、正在运行”。机器处于“关机”状态。请验证一切配置正确,然后重试。如果您使用的提供程序带有 GUI,则打开它并观察机器通常会很有帮助,因为 GUI 中通常包含比 Vagrant 可以检索的更多有用的错误消息。例如,如果您使用的是 VirtualBox,请
vagrant up
在 VirtualBox GUI 打开时运行。
通过 VirtualBox 我收到以下错误弹出:
重新启动 VirtualBox VM 进程 5 时出错
命令行:'81954AF5-4D2F-31EB-A142-B7AF187A1C41-suplib-2ndchild --command yacs_default_1410526815120_40382 --startvm f9b81b25-e24a-4e13-980d-80792f8da977 --no-startvm-errormsgbox' (rc=-104)
答案1
正如 @gtirloni 所说,这是 VirtualBox 中的一个错误,我通过卸载 VirtualBox 4.3.14 并安装 4.3.16 来修复它。它现在可以正常工作。