vagrant up时等待机器启动时超时[关闭]

Posted

技术标签:

【中文标题】vagrant up时等待机器启动时超时[关闭]【英文标题】:Timed out while waiting for the machine to boot when vagrant up [closed] 【发布时间】:2014-06-11 03:57:50 【问题描述】:

我有一个 Ubuntu 13.10,我安装了 Vagrant 1.5.4 和 VirtualBox 4.3.10r93012。当我第一次编写命令vagrant up 脚本正确启动虚拟机时,就会出现我的问题。但是在做了vagrant halt之后又写了vagrant up这个命令,就出现了问题:

vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection timeout. Retrying...
    default: Warning: Connection timeout. Retrying...
    default: Warning: Connection timeout. Retrying...
    default: Warning: Connection timeout. Retrying...
    default: Warning: Connection timeout. Retrying...
    default: Warning: Connection timeout. Retrying...
    default: Warning: Connection timeout. Retrying...
    default: Warning: Connection timeout. Retrying...
    default: Warning: Connection timeout. Retrying...
    default: Warning: Connection timeout. Retrying...
    default: Warning: Connection timeout. Retrying...
    default: Warning: Connection timeout. Retrying...
    default: Warning: Connection timeout. Retrying...
    default: Warning: Connection timeout. Retrying...
    default: Warning: Connection timeout. Retrying...
    default: Warning: Connection timeout. Retrying...
    default: Warning: Connection timeout. Retrying...
    default: Warning: Connection timeout. Retrying...
    default: Warning: Connection timeout. Retrying...
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.

有什么解决办法吗?谢谢。

【问题讨论】:

Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User 或Unix & Linux Stack Exchange 会是一个更好的提问地方。另见Where do I post questions about Dev Ops? 【参考方案1】:

我在 Windows 10 上遇到了同样的问题

 default: Waiting for machine to boot. This may take a few minutes...

 default: SSH address: 127.0.0.1:2222

 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.

这个解决方案对我有用:

以管理员身份打开 Windows 的命令提示符并运行:

 bcdedit /set hypervisorlaunchtype off

重新启动计算机。

【讨论】:

【参考方案2】:

我已经尝试了所有方法,但没有任何解决方案适合我。然后我在github上找到了这个解决方案。检查解决方案。

选项 1:

    重启并按住 F10 打开 Bios 设置。 打开高级 CPU 配置。 (尝试查找虚拟化技术设置。) 根据品牌启用英特尔虚拟化技术(也称为英特尔 VT)。 保存更改并重新启动。

选项 2:

    打开 Windows 的命令提示符。您应该以管理员身份打开终端或命令提示符,然后 然后输入:

    bcdedit /set hypervisorlaunchtype off
    

    重新启动计算机。

从blog 中查找更多详细信息

【讨论】:

我做了选项 2,它对我有用。我用了 4 个小时。 我明白了!我也浪费了很多时间。这就是为什么我在这里提出我的解决方案。【参考方案3】:

只需将此代码粘贴到您的变体文件中即可正常工作。

config.vm.boot_timeout = "1440"

保存更改后,输入 vagrant provision 命令更新更改 然后运行 ​​vagrant ssh 启动宅基地

【讨论】:

【参考方案4】:

您可能启用了导致问题的防火墙。 只需添加

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

到你的 VagrantFile 然后 vagrant up。在 gui 窗口上使用 vagrant 凭据登录并使用 sudo ufw disable 禁用防火墙。

重启 vagrant,一切都会好起来的。

vagrant halt
vagrant up

【讨论】:

好点,但是,不需要启动繁重的用户界面...只需vagrant ssh 然后sudo ufw disable 如你所说【参考方案5】:

对我有用的是vagrant destroy,然后是vagrant up 缺点是它会删除所有数据库,您需要再次运行迁移。

【讨论】:

【参考方案6】:

只需在 BIOS 中启用 cpu 设置的虚拟化技术

【讨论】:

【参考方案7】:

潜在问题:您的 bios 中可能禁用了虚拟化

重新启动计算机并继续按 F10 键。这将带您进入系统 BIOS。在那里你可以检查你的英特尔虚拟化是否被禁用。如果是这样,请将其更改为已启用,保存并继续重新启动您的电脑。

【讨论】:

【参考方案8】:

先决条件:请确保您的虚拟化已启用。

我在 Windows 10 系统中遇到了同样的问题,我在 *** 和 GitHub 问题中对这个问题进行了很多研究,但没有任何效果。所以我只是更新了我的虚拟盒子到最新版本并重新启动系统。之后,它对我来说非常好:)

【讨论】:

【参考方案9】:

我知道这是一个旧线程,但我最近在一个 Ubuntu vagrant box (19.04) 上遇到了同样的问题,并想发布对我有用的解决方案。

关键部分是 CPU 的数量。该盒子一直试图在启用 2 的情况下启动,这绝对会在启动过程中降低性能,以至于 vagrant 会超时等待。

通过将其设置为 1,我的盒子立即出现在 vagrant up 上!

config.vm.provider "virtualbox" do |v| 部分下的 Vagrantfile 中尝试添加 v.cpus = 1 看看是否有帮助。

希望这可以帮助遇到类似问题的其他人。

【讨论】:

谢谢,这是唯一对我有用的东西。这里的其他一切都是浪费时间。【参考方案10】:

我也收到错误消息Timed out while waiting for the machine to boot. 通过 vagrant 文件启用 GUI 后,我可以看到 vagrant tp 正在询问登录名和密码。提供vagrant/vagrant 工作但机器仍未启动。

终于,Vagrant destroy 工作了。在这台 vagrant up 配置机器之后,现在我可以使用 ssh。

【讨论】:

对我来说,我打开了 vb.gui,发现它在磁盘驱动器引导方面存在问题,并且 /tmp 文件夹尚未准备好或不存在。执行vagrant destroy 解决了这个问题。【参考方案11】:

我在 Windows 10 上遇到了同样的问题,我的解决方案是启用 英特尔虚拟化

恐怕我无法为您提供具体说明,因为 BIOS 菜单选项因计算机而异,具体取决于制造商。但是,通常您应该遵循以下步骤:

1-开机并打开BIOS。

2- 打开处理器子菜单。处理器设置菜单可能隐藏在芯片组、高级 CPU 配置或北桥中。

3-启用英特尔虚拟化技术(也称为英特尔 VT)或 AMD-V,具体取决于处理器的品牌。

4- 保存更改并重新启动。

【讨论】:

谢谢,我认为如果 BIOS 支持此配置,这是解决问题的最佳选择。如果它不支持,可能的解决方案是通过@Akalanka 所说的 vagrant config。 但不是每个人都可以访问他们的 BIOS。我不能。 这适用于我的笔记本电脑。在 BIOS vagrant 命令中启用 IVT 后工作正常。谢谢!【参考方案12】:

你可以尝试一些事情:

    检查您正在运行的 Vagrant 版本 (vagrant -v),它应该是最新的。同时运行vagrant box update。 增加 Vagrantfile 中的 config.vm.boot_timeout 值。

    在 Vagrantfile 中的 config.vm.provider :virtualbox do |vb| 行之后添加 vb.gui = true 以使用 GUI 打开 VM。尝试重新加载,看看卡住的确切错误是什么,然后尝试修复它。 同时点击设置,转到网络选项卡并确保选择了已连接的电缆选项。

    启用 GUI 后尝试重新加载,一旦登录屏幕出现,您可以使用用户名 vagrant 登录,密码与用户名相同。你需要打开/etc/default/grub。将以下内容添加到文件底部并保存文件:GRUB_RECORDFAIL_TIMEOUT=2。运行sudo update-grub。关闭虚拟机并运行vagrant up

【讨论】:

对我来说,解决方案是第 3 步并重新加载 vagrant。【参考方案13】:

选择您的 Ubuntu 服务器,点击设置,转到网络选项卡并确保选择了您的 Cable Connected 选项。

【讨论】:

在解决了这个问题之后,这个解决方案对我有用。非常感谢! 感谢百万人!我整天都被这个困住了! :) 对我不起作用。仍然收到相同的错误消息。 更新您的虚拟盒子。移动到VB 5或其他东西。它应该可以工作。 在我的情况下,“已连接电缆”已被选中! @Akalanka 的回答有帮助,但是 vagrant up 很慢。【参考方案14】:

我使用config.vm.boot_timeout 增加时间。但对我来说,这不是原因,尽管错误表明超时。

我使用 vim 打开了 Vagrantfile 并添加了以下几行来打开 VM 的 GUI。

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

重新运行vagrant up 后,我在 GUI 中看到了真正的原因。有一个错误对话框,它一直在等待。这就是连接超时的原因。

为了解决这个问题,我必须在系统 BIOS 中进行一些配置。我不得不打开英特尔 VT-x 设置。请同时检查 AMD-V 设置。这些设置有助于硬件虚拟化。

【讨论】:

感谢@Akalanka 的评论。我通过打开intel VT-x BIOS的设置解决了这个问题。 我启用了 GUI,但在 GUI 中我可以看到 VM 的登录屏幕,并且我可以使用用户名和密码作为 vagrant 登录。 ssh 超时。 ==> 默认值:等待机器启动。这可能需要几分钟... 默认:SSH 地址:127.0.0.1:2222 默认:SSH 用户名:vagrant 默认:SSH 身份验证方法:私钥 感谢您展示 VirtualBox UI 的提示!在我的情况下,一切正常,没有发现错误,所以增加超时就足够了。 重要提示: 我意识到我只是在将笔记本电脑与电源断开连接时出现超时问题,显然是因为这样做后笔记本电脑进入了“省电模式”。当它连接到电时,它处于“性能”模式,然后我就没有问题了。 配置文件在哪里?我怎样才能找到 vagrantfile?【参考方案15】:

您需要启用 GUI。在您的Vagrant 文件中删除此行的注释:

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

在您需要关闭机器并重新启动后:

vagrant halt
vagrant up

【讨论】:

您知道为什么需要这样做吗? 哇。 5 年后,仍然是一个有效的解决方法¯_(ツ)_/¯ @noelicus 很高兴这对你有用。【参考方案16】:

我用“vagrant destroy”解决了这个问题。

此命令停止 Vagrant 正在管理的正在运行的机器并销毁在机器创建过程中创建的所有资源。运行此命令后,您的计算机应该保持干净状态,就好像您从未创建过来宾计算机一样。

【讨论】:

【参考方案17】:

编辑config.vm 并根据您的需要增加config.vm.boot_timeout 的值。

【讨论】:

以上是关于vagrant up时等待机器启动时超时[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

当“vagrant up”时,它显示“您的机器似乎不支持 NFS”(Mac OS)

Vagrant Up失败,因为名称已存在

vagrant up 卡在挂载 nfs 上

超过锁定等待超时;尝试重新启动交易[关闭]

在vagrant up上添加/ etc / hosts进入主机的条目

保存/更新模型时,Django“超过锁定等待超时;尝试重新启动事务”