我想通过提及我确实已经查看了大多数(如果不是所有)流浪汉“等待虚拟机启动”故障排除线程来解释这个问题:
我尝试过的事情包括:
https://superuser.com/questions/342473/vagrant-ssh-fails-with-virtualbox
http://scotch.io/tutorials/get-vagrant-up-and-running-in-no-time
还有更多。
以下是我设置流浪汉的方法:
注意:我们正在使用Vagrant 1.2.2,因为我们目前还没有时间将配置更改为更新的版本。我也在使用VirtualBox 4.2.26。
/official/
文件夹,里面包含Vagrantfile
等内容。我的Vagrantfile
内是这些自定义设置:config.vm.box = "my_box" config.ssh.private_key_path = "~/.ssh/github_rsa" config.ssh.forward_agent = true config.ssh.forward_x11 = true config.ssh.max_tries = 300 config.vm.provision :shell, :inline => "/etc/init.d/networking restart"
我通过package.box
安装了我们的自定义框(名为vagrant box add my_box absolute_path/package.box
),顺便说一句。
运行vagrant up
,我会查看VirtualBox的“预览”,它只会停留在登录页面上。我的终端也只会说:Waiting for VM to boot. This can take a few minutes.
据我所知,这是一个SSH问题。或者我的私钥问题,但在Vagrantfile
我明确指出我的私钥位置。
有趣的笔记:
在VirtualBox GUI中运行dhclient
,表示找不到命令。运行sudo dhclient eth0
是建议的修复之一。
此修复程序:https://superuser.com/a/343775/298915“修改/etc/rc.local
文件,以便在sh /etc/init.d/networking restart
之前包含行exit 0
。”没有解决问题。
结论:
试图重新安装一切,以为我搞砸了一个文件,似乎没有改善这个问题。我无法解决此问题。有人可以给我一些见解吗?
答案 0 :(得分:5)
因此,经过大约12个小时的沮丧故障排除后,我能够(最终)让VM启动。
Setup your private/public keys使用提供的链接。我的框是Debian Linux 3.2.0-4-amd64
,因此您必须使用/root/.ssh/id_rsa.pub
(以及私钥的相应/home/vagrant/.ssh/id_rsa.pub
路径而不是id_rsa
。
注意:确保您的文件具有正确的权限。使用ls -l path
进行检查,然后使用chmod
进行更改。您的计算机可能没有/home/vagrant/.ssh/authorized_keys
,因此请使用touch /home/vagrant/.ssh/authorized_keys
生成该文件。
使用VirtualBox GUI(通过Vagrantfile
boot-GUI命令或使用VirtualBox启动VM)启动VM。出现提示时使用vagrant
和vagrant
登录。
在GUI中,使用sudo dhclient eth0 -v
手动启动dhclient。 为什么默认关闭?我不知道。当我在上面的教程中尝试wget
私钥/公钥时,我发现它已关闭,但无法解决。
转到本地计算机的命令行,使用vagrant reload
重新加载流浪汉。它应该启动,不再挂在"等待VM启动。"
这对我有用。虽然它可能与其他机器不同,无论出于何种原因,Vagrant都喜欢打破它。
建议:这可以保存为脚本,这样我们就不需要每次都手动执行此操作吗?
编辑:更新到最新版本的Vagrant,您再也不会看到此问题了。关于时间,嗯?