Vagrant无法连接到VirtualBox。

13

当我使用仅配置了这2行的基本Vagrantfile运行vagrant up时:

config.vm.box = "ubuntu/trusty32"
config.vm.network "forwarded_port", guest: 80, host: 8080

我看到虚拟机盒子正在打开,但是我的Vagrant日志会多次显示此行直到超时:
default: Warning: Connection timeout. Retrying...

随后,等待超时一段时间后,虚拟机终于要求我登录了,但这太久了!

所以我使用vagrant/vagrant进行登录。如果在我的物理机上执行“vagrant ssh”命令,则会发生无事情的情况,直到出现以下内容:

ssh_exchange_identification: read: Connection reset by peer

出了什么问题?有什么想法吗?

(顺便说一下,我的8080端口是空闲的,并且我也尝试了 vb.gui = true 的方法,

并且它与盒子hashicorp/precise32配合使用工作正常。)


1
可能相关的 Github 问题链接:https://github.com/mitchellh/vagrant/issues/5186 - tarleb
2
在你的Vagrantfile中添加config.ssh.insert_key = false可能会有所帮助。运行vagrant destroy && vagrant up来重新创建你的虚拟机。不确定这是否有帮助,但我曾经遇到过只需要这样做的情况。 - tarleb
谢谢,但这不起作用。 - trogne
很奇怪。我已经没有更多的想法了,抱歉。对其他读者有用的信息可能是:您的vagrant版本和主机环境。您应该在问题中明确说明这些信息。 - tarleb
2
我的主机环境:Windows 7(Intel T6600处理器,因此无法虚拟化,所以我使用Ubuntu/Trusty32而不是64),Vagrant版本=最新。我应该尝试旧的Vagrant版本吗? - trogne
显示剩余2条评论
2个回答

8
如果您有支持硬件虚拟化的计算机,需要在BIOS中启用它。如果您没有一台现代的CPU支持硬件虚拟化的计算机,就像您的情况一样,您将不得不使用32位盒子。那个box是32位的,所以应该可以工作。但是如果它不起作用,您可以尝试Piotr Banaszkiewicz在他的博客文章(这里)中描述的任何方法。这篇文章有点旧(2012年),但我们在这里谈论的是更老的CPU(2009年),所以可能仍然适用。总之,引用如下:在VirtualBox GUI中选择VM→Settings→System→Acceleration,然后取消选中所有内容。进入包含您的VirtualBox VM的目录,然后进入VM的目录,然后编辑*.vbox XML文件。在CPU标记子项(如HardwareVirtEx或PAE)中,将每个enabled="true"替换为enabled="false"。通过Va­grant­file关闭硬件虚拟化(config.vm.customize ["modifyvm", :id, "--hwvirtex", "off"])。检查您的Vagrant虚拟机的CPU数量是否大于1。如果是这样,请去更改*.vbox文件中的CPU计数为1。希望这可以帮助您。

1
谢谢,但是不起作用。 "ubuntu/trusty32" 仍然以“不完整配置”的方式加载。无法“vagrant ssh”。 - trogne

7
你是否修改了vagrant虚拟机中的.ssh文件夹里的任何内容?我曾经删除了know_hosts文件,结果只看到以下信息:
default: Warning: Connection timeout. Retrying...

1
谢谢,但 Vagrant Box 存储在哪里?是在 ~/.vagrant.d/boxes 中吗?因为我看到了 Box,但没有 .ssh 文件夹。 - trogne
1
我的意思是在您的客户操作系统内部,例如Ubuntu/trusty32,您是否尝试过销毁该虚拟机并重新构建它? - Jean Guzman
1
抱歉,不起作用。我已经尝试过销毁/重建了。 - trogne

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接