読者です 読者をやめる 読者になる 読者になる

ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

「Vagrant was unable to mount VirtualBox shared folders.」というエラーが出た時の対処方法

yumやaptコマンドなどでLinuxシステムを更新後、下記のようなmount.vboxsfエラーが出る場合、 対応方法としてvagrant-vbguestプラグインを使う方法があるようです。

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

The error output from the command was:

/sbin/mount.vboxsf: mounting failed with the error: No such device

このプラグインは非常に便利なプラグインです。しかし、デフォルトのままの設定だと「vagrant upした時に古いGuestAdditionsだと更新」されてしまい、OSの起動に時間がかかってしまうので「config.vbguest.auto_update = false」を設定しておいた方がいいようです。

参考

qiita.com

プラグインのインストールとシステム更新の流れ

まずはvagrant-vbguestプラグインをインストールする。

$ vagrant plugin install vagrant-vbguest

vagrant upコマンドでサーバーを起動する。

$ vagrant up sl7n1

起動後にSSHログイン。

$ vagrant ssh sl7n1

システムをアップデートする。

$ sudo yum update

アップデート後はrebootコマンドで起動するのではなく、vagrant reloadコマンドを利用する。

$ exit
$ vagrant reload sl7n1

そうするとvboxsfが出ることがある(Linuxカーネルの更新があった場合)。

    sl7n1: /vagrant => /Users/ytooyama/vagrant/standard
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 vagrant /vagrant

The error output from the command was:

/sbin/mount.vboxsf: mounting failed with the error: No such device

vagrant-vbguestプラグインを使ってGuestAdditionsを更新する。

$ vagrant vbguest sl7n1

終わったら再起動する。

$ vagrant reload sl7n1

vbguestを確認する。

$ vagrant vbguest sl7n1 --status
[sl7n1] GuestAdditions 5.1.12 running --- OK.

これで起動毎に「/sbin/mount.vboxsf: mounting failed with the error: No such device」というエラーは出なくなるはずです。

以上で表題にあげた問題は回避可能ですが、このようなメッセージが出るということはVagrant Boxが古くなっているということですので、新しいVagrant Boxがないか確認した方がいいと思います。