2016-05-09 169 views
3

EDIT6:提交正式的路径错误:https://github.com/mitchellh/vagrant/issues/7512流浪无法连接到虚拟机

EDIT5:当我做vagrant destroyvagrant up,一切工作很容易。但是当我关闭虚拟机并重新打开它(你必须重新启动你的电脑),它不会再工作。创建虚拟机时的vagrant up的序列被窃听或者VirtualBox被窃听。销毁和重建虚拟机不是选项,导致数据库迁移,至少需要大约30分钟。无论哪种方式,请勿在WINDOWS 10上使用VAGRANT。

编辑4:我降级到Virtual Box 5.0.0.10,它修复了错误的路径问题,但仍然存在错误Command not in installer

编辑3:当我进入vagrant up --debug,我发现它循环。它进入线

INFO subprocess: Starting process: ["C:/Program Files/Oracle/VirtualBox/VBoxManage.exe", "showvminfo", "8aaee3a3-806f-4 
8ad-9928-91e2b7baba5d", "--machinereadable"] 

,然后它

INFO subprocess: Command not in installer, restoring original environment... 

到虚拟机的路径使用向前斜线而不是反斜线。这是一个错误?有没有办法手动设置虚拟机的路径?我已将C:\Program Files\Oracle\VirtualBox放入我的PATH中。

编辑2:不要在WINDOWS 10上使用VAGRANT,它有很多方面的bug,也没有针对win10优化虚拟机,但是你会遇到一堆你无法解决的问题。也尝试了来自Hashicorp的Otto,不工作。安息。

编辑:好的,所以当我做vagrant destroyvagrant up,安装10分钟后,它就像一个魅力。但是,以任何方式重新启动我的电脑或注销后,Vagrant都无法连接到虚拟机,既无法使用私钥,也无法使用登录名/密码。这是一个错误?

当我做vagrant up时,VM启动正常,但Vagrant无法连接。它所说的是Warning: Remote connection disconnect. Retrying... 当我尝试通过vagrant ssh进行连接时,我只获得ssh_exchange_identification: read: Connection reset by peer。当我检查VM的GUI时,它正在等待登录,并且当我使用defult登录名/密码登录时,它正在按照预期工作,所以问题必须是Vagrant无法连接到VM。

我想:

  1. 检查,如果我的电脑支持虚拟化和检查,如果它是
  2. 尝试与密码,而不是一个关键
  3. 配置网络adapetrs连接
  4. 关闭防火墙
  5. 干净重装

我使用在Windows 10 流浪1.8.1和VirtualBox的5.0.20这是我的无业游民文件:

VAGRANTFILE_API_VERSION = "2" 

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 

    config.vm.box = "ubuntu/trusty64" 

    config.vm.provider :virtualbox do |vb| 
    vb.memory = 2048 
    vb.gui = true 
    vb.cpus = 2 
    end 


    config.vm.network :private_network, type: "dhcp" 
    config.vbguest.auto_update = false 

    config.ssh.insert_key = false 

    config.vm.provision :shell, path: "bootstrap.sh" 

end 
+1

它很难说,但如果你仍然可以从虚框登录,我WOU ld这样做并检查所有的'sshd'配置,它可以在某些方面改变?从引导程序或您运行的任何其他命令; –

+0

你可以尝试创建一个名为'VBOX_USER_HOME'的新env变量并将它指向你的虚拟盒子安装 –

回答

1

[编辑17/06/2016]
这个问题应该在VirtualBox中5.0加以解决。 22。

https://www.virtualbox.org/wiki/Changelog
https://www.virtualbox.org/ticket/15412

[下面原来的答复]
相反我先前的答案,我现在不认为我遇到同样的问题,因为你已经在这里描述。但我仍然认为你遇到了不同的问题。

至于从Virtualbox开发收到的反馈https://www.virtualbox.org/ticket/15412我了解到,Virtualbox 5.0.20包含对NAT转发规则的更改以解决其他错误。当虚拟机保存并重新启动时,Virtualbox现在将网络电缆移除5秒钟。这应该会触发DHCP客户端请求新的租约。然后这个信息被Virtualbox用来推断IP地址和NAT应该工作。

在我的特殊情况下,我遇到了Ubuntu 16.04作为访客虚拟机的这个问题,而它的工作原理是Ubuntu 14.04。这表明Ubuntu 14.04上的DHClient确实在Virtualbox断开连接后请求新的租约,而Ubuntu 16.04则不这样。

为了验证您是否遇到同样的问题,我想知道您是否可以运行下面的测试并让我知道。

  1. 登录该忠实的虚拟机控制台(即当你在前台运行的虚拟机,你得到显示的一个)
  2. 安装“arping的”(sudo apt-get -y install arping
  3. 创建以下脚本“sendARP。 SH”

    #!/bin/bash 
    
    IFACE=$(ifconfig | grep 'Link encap:Ethernet' | awk '{print $1}') 
    IP=$(ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1') 
    
    arping -c 1 -i $IFACE $IP 
    
  4. 使它成为一个可执行的 '使用chmod + X sendARP.sh'
  5. 保存忠实的VM(vagrant suspend
  6. 从保存状态启动您的Trusty VM(vagrant up
  7. 登录到Trusty VM控制台(即,当你在前台运行的虚拟机,你得到显示的一个)
  8. 运行脚本“须藤./sendARP.sh”
  9. 测试是否可以通过SSH从远程位置连接/ VirtualBox主机

错误:

https://github.com/mitchellh/vagrant/issues/7306

https://www.virtualbox.org/ticket/15412

+0

Got VM 5.0.22和Vagrant 1.8.4,问题仍然存在。当我消灭和流浪时,一切都有效。当我迷路停下然后流浪时,没有机会。 –

+0

@MilošLukačka当你做'流浪汉'然后'流浪'的时候,它会起作用吗? – quat

+0

是的,因为'流浪汉暂停'与'流浪汉停顿'+'流浪汉'相同。我将该问题提交为错误的路径错误。 https://github.com/mitchellh/vagrant/issues/7512 –