先日、Macbook ProのOSをCatalinaからMontereyにアップデートしたのだが、業務で仮想環境として主に使っているVagrantが立ち上がらなくなってしまった。

最終的には無事に元どおり使えるようになったので、今回は解決に至るまでのプロセスを紹介していく。

アップデート後 Vagrantの全てのコマンドが利用不能に

Montereyにアップデートした後、vagrant upvagrant -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環境を立ち上げることができるようになった。