この記事は旧ブログから移転した記事です。
「何もしていないのに壊れました!!」
昨日まで動いていたはずのvagrant upが突如として動かなくなることは意外とよくあるらしい。色々な原因があるらしいが、私の場合は結構単純だったのでご紹介します。
結論から書くと
Hyper-VとWindowsサンドボックスを無効化したら解決。
これで解決する可能性があるのはWindows10 Pro以上のエディションの場合のみ(HomeエディションはそもそもHyper-Vなどがないので)。
(後日、Hyper-Vを無効化しているのにvagrant upできない症状が再発したので、その時の対処法を記事の最後に追記。)
環境
Windows10 Pro(21H2)上のVirtualBox6.1.32上のvagrant
起こったトラブル
vagrant upしようとすると以下のようにSSH接続の段階でタイムアウトしてしまう。
>vagrant up
==> default: ...
~省略~
default: SSH auth method: private key(以下エラー)
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.
If you look above, you should be able to see the error(s) that
Vagrant had when attempting to connect to the machine. These errors
are usually good hints as to what may be wrong.
If you're using a custom box, make sure that networking is properly
working and you're able to connect to the machine. It is a common
problem that networking isn't setup properly in these boxes.
Verify that authentication configurations are also setup properly,
as well.
If the box appears to be booting properly, you may want to increase
the timeout ("config.vm.boot_timeout") value.
対処法
上手くいっていた時と今回のvagrant upで何が違うかな?と考えてみると、そういえばこの間にHyper-VとWindowsサンドボックスを有効化してた!ということで早速無効化。
タスクバーの検索ボックスから「Windowsの機能の有効化または無効化」で検索>Hyper-VとWindows サンドボックスのチェックを外す(両方無効化しないと解決しなかった)
チェックを外したらPCを再起動。これでvagrant upできるようになっていた。
ちなみにvagrantのタイムアウト問題を調べてみると公開鍵の問題やVMのバージョンの問題など色々出てくるので、あくまで一つの解決策ということで。
追記
「Windowsの機能の有効化または無効化」でHyper-VとWindowsサンドボックス無効化したにも関わらず改善しない場合は「hypervisorlaunchtype」が「Auto」になっている可能性がある。これを「off」にする。
Powe Shellを管理者で起動して以下のコマンドを実行。
bcdedit
ブートローダーのステータス一覧の「hypervisorlaunchtype」を確認。「Auto」の場合は以下のコマンドで「off」にする。
bcdedit /set hypervisorlaunchtype off
終わったら再起動。