Vagrantを利用していて、イメージOSとホストOSの共有フォルダを利用するために、
config.vm.synced_folder
共有フォルダのマウントを指定したら、以下のようなエラーになってしまいました。
Vagrant was unable to mount VirtualBox shared folders. This is usually
because the filesystem "vboxsf" is not available. This filesystem is
made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the
guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attempted was:
mount -t vboxsf -o uid=1000,gid=1000,_netdev vagrant /Users/hogeuser/vagrant
The error output from the command was:
/sbin/mount.vboxsf: mounting failed with the error: No such device
基本的な設定に異常がなくても、
ホスト(VirtualBox)とゲスト(Guest Additions)でバージョン不一致なだけで、エラーが発生するようです。
対応方法をメモしたいと思います。
環境
- VirtualBox:バージョン 6.1.34 r150636 (Qt5.6.3)
- macOS:Monterey 12.3.1
- vagrant:2.2.19
- vagrant-vbguest:0.30.0
vagrant-vbguestプラグインを利用して調整
vagrant plugin install vagrant-vbguest
vagrant-vbguest
は、
VirtualBox、GuestAdditions、およびカーネルモジュールのバージョンを調整してくれるプラグインです。
バージョン不一致でエラーが発生している場合、即解決できると思います。
https://github.com/dotless-de/vagrant-vbguest
kernel moduleを手動で調整
バージョン不一致でエラーが発生している場合、
カーネルモジュール等のバージョンを手動で調整しても解決できます。
sudo yum -y update kernel
sudo yum -y install kernel-devel kernel-headers dkms gcc gcc-c++
場合によっては、virtualboxの最新化なども行います。
brew reinstall virtualbox
今回のメモは以上となります。
何かとバージョン不一致でのトラブルが起きやすいので、
調整用のプラグインは非常に重宝します。