「vagrant vboxsf is not available」の対処法

プログラミング

vagrant upで「Vagrant was unable to mount VirtualBox shared folders」エラーが発生した場合の対処法です。

現象

vagrant upした際に以下のエラーが発生して仮想環境を立ち上げることができなくなった。

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 share /share

The error output from the command was:

mount: unknown filesystem type 'vboxsf'

原因

ホストOSとゲストOSの共有フォルダを正常にマウントできなくなることで発生するようです。共有フォルダをvboxsfファイルシステムを使って利用する場合に「VirtualBox Guest Additions」と「kernel module」が必要になります。そのためエラーを解消するには以下の2点を実施します。

  1. kernel moduleの最新化
  2. VirtualBoxとGuest Additionsのバージョンを一致させる

kernel moduleの最新化

仮想マシンへログイン後にkernel moduleをアップデートします。

# rootになるには「sudo su」を実行する
[vagrant@centos8 ssh]$ sudo yum -y update kernel
[vagrant@centos8 ssh]$ sudo yum -y install kernel-devel kernel-headers dkms gcc gcc-c++

VirtualBoxとGuest Additionsのバージョンを一致させる

手動で一致させることもできるみたいですが、vagrant up時に自動的にバージョンを一致してくれるプラグインがあるのでそちらを導入します。

# プラグインをインストール
vagrant plugin install vagrant-vbguest

# 仮想環境が立ち上がっている場合は停止させる
vagrant halt

# 仮想環境を立ち上げる
vagrant up

これで仮想環境が正常に立ち上がれば完了です。

pocketcode

30代のWEB系企業エンジニアです。毎回同じようなことを検索してしまうので、自分の備忘録的に書いています。サイトのデザインはQiita(https://qiita.com)さんに寄せています。