Why it doesn't work?

作業のメモ、記録をブログに残しています。

Vagrantによる環境構築(番外編) vagrant up でTimed outが発生する。

Vagrantによる環境構築(番外編) vagrant up でエラーが発生する。 - Why it doesn't work?
で発生したエラーはPowerShellのバージョンアップを行うことで回避しましたが、また新たなエラーが発生しました。
環境は以下の通りです。
Windows7 SP1
Virtual Box: 5.2.8
Vagrant: 2.0.3
PowerShellを起動して

vagrant up

入力後、"default: SSH auth method: private key"が表示された後、しばらくすると以下のようなエラーメッセージが繰り返し発生し、

default: Warning: Connection reset. Retrying...
default: Warning: Connection aborted. Retrying...

結局タイムアウトで終了してしまいました。

Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.

(2018/4/26 追記)
Vagrantのバージョンアップ(2.0.4)を行い、再度トライしてみたところ、正常に起動しました。
本当にバージョンアップが問題の解消の要因なのかいまいち不明なのですが。。。とりあえずご報告まで。
Windows Vagrantをアップデートする - Why it doesn't work?

と、いうわけで、以下の記事はご参考までということでよろしくお願いします。


念のため、Boxを"ubuntu/xenial64"に変更してトライしてみましたが、同じエラーが発生しました。
Box側の問題ということではないようです。

GUIを有効化する

Vagrantfileをファイルを開いて、52行目周辺に移動し、以下のように"vb.gui=true"を有効化します。

config.vm.provider "virtualbox" do |vb|
# Display the VirtualBox GUI when booting the machine
vb.gui = true
end

この状態で、

vagrant up

を実行すると、しばらくすると仮想OSが立ち上がります。その後、仮想OSにID=vagrant, Pass=vagrantでログインすると、正常に処理が終了しました。
(2018/04/24 追記)この方法も不安定です。同じくタイムアウトが発生する時もあります

バージョンをダウングレードする

Windows7の環境下では、VirtualBox のバージョンを"5.1.30"に、Vagrant を"1.9.6"にダウングレードすれば起動するようです。試してませんので、あくまで参考ということで。
(2018/04/24 追記)試してみました。結果は同じく駄目でした。もう少し調査を続けます

VirtualBoxの設定の問題?

ネットでよく見つかるのは、VirtualBox 5.1の不具合に対応する方法で、以下の対応を行うことで不具合が解消するという報告です。

config.vm.provider "virtualbox" do |vb|
vb.customize ["modifyvm", :id, "--cableconnected1", "on"]
end

結論から言うと、私の環境では駄目でした。そもそもこの不具合は、Virtual Box 5.1.6で対応済みという理解なので、やはり環境に依存する問題かと思われます。もう少しウォッチを続けます。

個人的にダウングレードするほどの問題とも思われないので、今回はGUIを有効化して対応します。
もうWindows7はもうきついのかな。。。