Vagrant卡在"等待VM启动"

时间:2014-09-22 04:19:28

标签: ssh vagrant virtualbox

我想通过提及我确实已经查看了大多数(如果不是所有)流浪汉“等待虚拟机启动”故障排除线程来解释这个问题:

我尝试过的事情包括:

  1. vagrant failed to connect VM

  2. https://superuser.com/questions/342473/vagrant-ssh-fails-with-virtualbox

  3. https://github.com/mitchellh/vagrant/issues/410

  4. http://vagrant.wikia.com/wiki/Usage

  5. http://scotch.io/tutorials/get-vagrant-up-and-running-in-no-time

  6. 还有更多。

    以下是我设置流浪汉的方法:

    注意:我们正在使用Vagrant 1.2.2,因为我们目前还没有时间将配置更改为更新的版本。我也在使用VirtualBox 4.2.26。

    1. 我的办公室有一个/official/文件夹,里面包含Vagrantfile等内容。我的Vagrantfile内是这些自定义设置:
    2.   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"
      
      1. 我通过package.box安装了我们的自定义框(名为vagrant box add my_box absolute_path/package.box),顺便说一句。

      2. 运行vagrant up,我会查看VirtualBox的“预览”,它只会停留在登录页面上。我的终端也只会说:Waiting for VM to boot. This can take a few minutes.据我所知,这是一个SSH问题。或者我的私钥问题,但在Vagrantfile我明确指出我的私钥位置。

      3. 有趣的笔记:

        1. 在VirtualBox GUI中运行dhclient,表示找不到命令。运行sudo dhclient eth0是建议的修复之一。

        2. 此修复程序:https://superuser.com/a/343775/298915“修改/etc/rc.local文件,以便在sh /etc/init.d/networking restart之前包含行exit 0。”没有解决问题。

        3. 结论:

          试图重新安装一切,以为我搞砸了一个文件,似乎没有改善这个问题。我无法解决此问题。有人可以给我一些见解吗?

1 个答案:

答案 0 :(得分:5)

因此,经过大约12个小时的沮丧故障排除后,我能够(最终)让VM启动。

  1. 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生成该文件。

  2. 使用VirtualBox GUI(通过Vagrantfile boot-GUI命令或使用VirtualBox启动VM)启动VM。出现提示时使用vagrantvagrant登录。

  3. 在GUI中,使用sudo dhclient eth0 -v手动启动dhclient。 为什么默认关闭?我不知道。当我在上面的教程中尝试wget私钥/公钥时,我发现它已关闭,但无法解决。

  4. 转到本地计算机的命令行,使用vagrant reload重新加载流浪汉。它应该启动,不再挂在"等待VM启动。"

  5. 这对我有用。虽然它可能与其他机器不同,无论出于何种原因,Vagrant都喜欢打破它。

    建议:这可以保存为脚本,这样我们就不需要每次都手动执行此操作吗?

    编辑:更新到最新版本的Vagrant,您再也不会看到此问题了。关于时间,嗯?