我想通过提及我确实查看了大多数(如果不是所有)流浪汉"等待虚拟机启动"故障排除线程来解释这个问题:
我尝试过的事情包括:
vagrant无法连接VM
https://superuser.com/questions/342473/vagrant-ssh-fails-with-virtualbox
https://github.com/mitchellh/vagrant/issues/410
http://vagrant.wikia.com/wiki/Usage
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
我明确地指出了我的私钥位置.
有趣的笔记:
dhclient
在VirtualBox GUI中运行,它表示找不到命令.运行sudo dhclient eth0
是建议的修复之一.
此修复:https://superuser.com/a/343775/298915 "修改/etc/rc.local
文件以包含sh /etc/init.d/networking restart
之前的行exit 0
." 什么都没解决问题.
结论:
试图重新安装一切,以为我搞砸了一个文件,它似乎没有改善这个问题.我无法解决此问题.有人能给我一些见解吗?
因此,经过大约12个小时的沮丧故障排除后,我能够(最终)让VM启动.
使用提供的链接设置您的私钥/公钥.我的框是a 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中,使用手动启动dhclient sudo dhclient eth0 -v
.为什么默认关闭?我不知道.当我wget
在上面的教程中尝试使用私钥/公钥时,我发现它已经关闭,但是无法进行.
转到本地计算机的命令行并使用重新加载vagrant vagrant reload
.它应该启动,并且不再挂起"等待VM启动".
这对我有用.虽然它可能与其他机器不同,无论出于何种原因,Vagrant都喜欢打破它.
建议:这可以保存为脚本,这样我们每次都不需要手动执行此操作吗?
编辑:更新到最新版本的Vagrant,您再也不会看到此问题.关于时间,是吧?