先日、Macbook ProのOSをCatalinaからMontereyにアップデートしたのだが、業務で仮想環境として主に使っているVagrantが立ち上がらなくなってしまった。
最終的には無事に元どおり使えるようになったので、今回は解決に至るまでのプロセスを紹介していく。
コンテンツ
アップデート後 Vagrantの全てのコマンドが利用不能に
Montereyにアップデートした後、vagrant up
、vagrant -v
など全てのコマンドが利用不能となり、共通して以下のエラーが発生するようになってしまった。
fatal error: runtime: bsdthread_register error
ここからは順を追って、試したことを解説していく。
Vagrantの再インストール
OSのアップデートによりVagrantが壊れてしまっているようだったので、Vagrantの再インストールをすることにした。
下記のコマンドを順に実行して、まずはアンインストール。
sudo rm -rf /opt/vagrant
sudo rm -f /usr/local/bin/vagrant
sudo pkgutil --forget com.vagrant.vagrant
次にHomebrewでVagrantをインストールし直す。
brew install vagrant
インストールが完了したらバージョン確認コマンドvagrant -v
で、Vagrantコマンドが正常に実行されるか確認する。
Vagrantプラグインの更新
Vagrantのコマンドが使えるようになったので、vagrant up
を実行したのだが今度は以下のエラーが発生。
Vagrant failed to initialize at a very early stage:
The plugins failed to initialize correctly. This may be due to manual
modifications made within the Vagrant home directory. Vagrant can
attempt to automatically correct this issue by running:
vagrant plugin repair
If Vagrant was recently updated, this error may be due to incompatible
versions of dependencies. To fix this problem please remove and re-install
all plugins. Vagrant can attempt to do this automatically by running:
vagrant plugin expunge –reinstall
Or you may want to try updating the installed plugins to their latest
versions:
vagrant plugin update
Error message given during initialization: Unable to resolve dependency: user requested ‘vagrant-hostsupdater (= 1.1.1.160)’
エラー文に書かれているとおり、Vagrantプラグインの更新をしてみることに。
vagrant plugin update
VirtualBoxのバージョンアップ
プラグインの更新が完了したら、再度vagrant up
実行。
しかし今度は次のエラーが発生。
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.
Command: [“hostonlyif”, “create”]
Stderr: 0%…
Progress state: NS_ERROR_FAILURE
VBoxManage: error: Failed to create the host-only adapter
VBoxManage: error: VBoxNetAdpCtl: Error while adding new interface: failed to open
/dev/vboxnetctl: No such file or directory
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component
HostNetworkInterfaceWrap, interface IHostNetworkInterface
VBoxManage: error: Context: “RTEXITCODE handleCreate(HandlerArg *)” at line 94 of file
VBoxManageHostonly.cpp
今度はVirtualBox関連のエラーのようなので、VirtualBoxのバージョンアップを試してみることに。
6.0.18 → 6.1.32
IPアドレスの変更
今度こそはとvagrant up
実行。
しかしまた別のエラー発生。
The IP address configured for the host-only network is not within the
allowed ranges. Please update the address used to be within the allowed
ranges and run the command again.
Address: 192.168.33.10
Ranges: 192.168.56.0/21
Valid ranges can be modified in the /etc/vbox/networks.conf file. For
more information including valid format see:
https://www.virtualbox.org/manual/ch06.html#network_hostonly
ここまできたら後は簡単。
Vagrantfileに記述している使用するIPアドレスの箇所を、エラー文を参考に次のとおり変更する。
config.vm.network "private_network", ip: "192.168.33.10"
↓
config.vm.network "private_network", ip: "192.168.56.10"
ようやく解決!
変更したVagrantfileを保存したら、再度vagrant up
実行。
コマンドは無事通り、ようやくVagrant環境を立ち上げることができるようになった。