問題
PowerShellを使ってvagrant up
した際、
default: SSH auth method: private key
の表示のまま止まり、そのままタイムアウトになってしまう。
環境
- Windows 11 Pro バージョン21H2
- プロセッサ:AMD Ryzen 7 5825U with Radeon Graphics
- 実装RAM:16GB
- VirtualBox:6.1
- Vagrant:2.2.19
- box:ubuntu/jammy64
解決策
結論から言うと、考えられる原因は一つでは無いようです。ググればググるほど人によって解決方法が違いました。
私は以下の方法で解決しました。
Vagrantfileに以下記載を追記する
config.vm.provider "virtualbox" do |vb|
# Workaround for https://www.virtualbox.org/ticket/15705
vb.customize ['modifyvm', :id, '--cableconnected1', 'on']
end
すでに修正済みのバグのワークアラウンドのようですが、これでうまくいきました。
タイムアウトしていても、VMは起動している
タイムアウトが出た状態でVirtualBoxマネージャーを開くと、「実行中」となっていることがわかります。
そのため、Vagrantfileに追記したあと、一度電源オフしてから再度vagrant up
する必要があります。
2回やるとうまくいくこともある
Vagrantfile
に追記してからvagrant up
をしてもうまくいかず、もう一度、停止→起動をするとちゃんと起動するという状況もありました。。。
追記:その後の状況
その後、以下のステップでうまくいっています。何とか一発で起動するようにしたい…。
①vagrant up
が失敗。
②Oracle VM VirtualBoxマネージャーから停止する。
③再度vagrant up
を実行する。
その他の解決策
- Hyper-Vが悪さをしていた人も多いようです。
- Vagrantfileに別の記述をして解決した人もいるようです(詳細不明)
まとめ
PowerShellを使ってvagrant up
した際、
default: SSH auth method: private key
の表示のまま止まり、そのままタイムアウトになってしまう問題について述べました。完全に解決はしていませんが、作業はできています。
環境周りに関してはまだまだ不明点も多いです。
追記
2022/10月
WindowsPCでLinux環境を使いたいときは、WSL2を使うことにしました。
VirtualBox・Vagrantの環境は、構築作業に時間がかかっていたのと動作が重かったので、乗り換えました。今のところ快適です。
npm install
が遅い問題が発生しましたが、以下の記事を参考に解決しました。
WSL2 でnpm installが遅い時のもう一つの対策 - Qiita
エラーの内容
エラーの全文はこちら。
> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'ubuntu/jammy64' version '20220708.0.0' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
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.