2016-05-09 211 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 –