40

有一些问题让我的流浪汉起来,拿到盒子,运行vagrant init并在vagrant up命令之后我收到这条消息。

Bringing machine 'default' up with 'virtualbox' provider...
    ==> default: Importing base box 'precise32'...
    ==> default: Matching MAC address for NAT networking...
    ==> default: Setting the name of the VM: virtm_default_1400193131859_61200
    ==> default: Fixed port collision for 22 => 2222. Now on port 2201.
    ==> default: Clearing any previously set network interfaces...
    ==> default: Preparing network interfaces based on configuration...
        default: Adapter 1: nat
    ==> default: Forwarding ports...
        default: 22 => 2201 (adapter 1)
    ==> default: Booting VM...
    ==> default: Waiting for machine to boot. This may take a few minutes...
        default: SSH address: 127.0.0.1:2201
        default: SSH username: vagrant
        default: SSH auth method: private key 
    Timed out while waiting for the machine to boot. This means that Vagrant was unable to communicate with the guest machine within the configured ("config.vm.boot_timeout" value) time period.

    If you look above, you should be able to see the error(s) that Vagrant had when attempting to connect to the machine. These errors are usually good hints as to what may be wrong.

    If you're using a custom box, make sure that networking is properly working and you're able to connect to the machine. It is a common problem that networking isn't setup properly in these boxes. Verify that authentication configurations are also setup properly, as well.

    If the box appears to be booting properly, you may want to increase the timeout ("config.vm.boot_timeout") value.

有什么建议么?

4

10 回答 10

20

有几个不同的问题会导致这个超时问题。跟踪它的一个好技巧是启用 GUI 模式。这将调出 VirtualBox 机器 UI,这可能会为问题提供更好的线索。

要启用 GUI 模式,请确保您的此部分Vagrantfile未注释:

config.vm.provider "virtualbox" do |vb|
   vb.gui = true
end

然后做一个vagrant reload. 这应该会调出显示您的虚拟机 UI 的 VirtualBox 应用程序。通常问题会变得很明显,无论是网络问题还是 grub 引导加载程序问题。

解决问题后,您可以再次将其注释掉,然后再执行一次vagrant reload以返回无头模式。

参考:Vagrant 文档

于 2014-05-19T16:05:26.733 回答
5

这里优雅地描述了一个解决方案。它是唯一一个在 i686 上使用 Ubuntu 16.04.2、Vagrant 1.9.3 和 Virtualbox 5.1.18 尝试运行 ubuntu/trusty32 的工具。

您所做的是修复服务器上的网络并添加一些额外的启动时间:

  • 启动虚拟机,通过 GUI 登录服务器(用户名:vagrant,密码:vagrant)并运行以下命令

    $ sudo ifdown eth0
    $ sudo ifup eth0
    
  • 然后将以下内容添加到文件 /etc/rc.local

    ifdown eth0
    ifup eth0
    
  • 在主机上,将以下内容添加到 Vagrantfile

    config.vm.boot_timeout = 600
    

现在停止虚拟机。下次你做一个“流浪汉”就可以了。

于 2017-04-11T00:00:22.560 回答
4

如果你的 Vagrant box 运行的是 Ubuntu 16.04,那是因为这个引导步骤......启动作业正在运行提升网络接口(5 分 8 秒)克服这个问题的一种方法是从 VirtualBox 启动 VM,然后执行vagrant ssh

于 2016-12-27T07:46:14.340 回答
3

config.vm.boot_timeout即使在设置到最大值后也没有帮助我!!!

就我而言,真正的问题是,它无法创建网络适配器。我必须明确编辑 box.ovf 文件才能启用它。

找到box.ovf文件并在文本编辑器中打开它,然后cable="true"如下所示添加,然后保存并退出。发布使用 vagrant destroy 销毁您的 vagrant,然后将其打开。

Locate(box.ovf): C:\Users\<use_name>\.vagrant.d\boxes\box-cutter-VAGRANTSLASH-centos68-desktop\2.0.21\virtualbox\box.ovf

Before: <Adapter slot="0" enabled="true" MACAddress="084017AA8CEB" type="virtio">

After: <Adapter slot="0" enabled="true" MACAddress="084017AA8CEB" cable="true" type="virtio">

这里有一个不错的线程

于 2017-12-15T17:59:07.093 回答
2

将 VirtualBox 升级到 5.1.12

我有同样的问题使用:

  • 虚拟盒子 5.0.0
  • 流浪者 1.9.1 ( vagrant -v)
  • 测试厨房 1.14.2 ( kitchen -v)
  • centos-7.2

当我尝试运行以下命令时:

kitchen create

kitchen test

将 Oracle VirtualBox(下载 + 安装)升级到VirtualBox 5.1.12解决了这个问题。


如果升级不是您的解决方案,您可以使用@paulalexandru 提到的以下解决方法,但它具有以下主要缺点:您需要为正在运行的每个命令执行该手动步骤。


但似乎 VirtualBox 修复了“Cable Connected”选项问题。现在,如果您转到Settings > Network > Adapter 1 > Advanced,您可以看到Cable Connected复选框默认处于选中状态:

已检查电缆连接

于 2017-01-04T16:01:33.720 回答
1

这是我遇到的同样的问题。最后我们发现这个问题是由于我们使用的 Linux 操作系统与 Vagrant 版本不兼容。因此,我们采用最新版本(即 v1.6.3)的 Vagrant 并更新我们的操作系统以指向 agent.vm.box_url = " http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-i386 -v20131103.box "

Vagrant 版本 4.3.8 不适用于以下操作系统。agent.vm.box_url = " http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130731.box "。

我们遇到了与上面显示的完全相同的问题。

于 2014-06-30T19:40:22.833 回答
0

对我来说,我已经在我的 Windows 10 中卸载了 Docker-CE,然后 vagrant 工作正常。也请检查禁用选项。

于 2020-09-09T05:13:29.650 回答
0

我正在使用 Windows 10。

我按照注释中的步骤解决了这个问题

“如果您使用的是 Windows,您可能需要启用硬件虚拟化 (VT-x)。它通常可以通过您的 BIOS 启用。如果您在 UEFI 系统上使用 Hyper-V,您可能还需要在为了访问 VT-x。”

于 2019-05-15T19:08:11.090 回答
0

对我来说,从 BIOS 启用虚拟化选项修复了它。

于 2017-12-13T19:45:49.983 回答
-1

通过我的设置 Win10、Vagrant 2.1.2 和 Ubuntu 16,同时工作防火墙,我为端口 80 启用了“ufw”,我遇到了同样的问题。用于启用防火墙的命令如下

ufw enable

ufw 80 allow

我确实在 Vagrantfile 中以 GUI 启用模式登录并禁用它对我来说是救命稻草。

ufw disable

现在,做

vagrant reload

vagarnt ssh
于 2018-07-19T05:57:44.487 回答