Vagrantで `unknown filesystem type 'vboxsf'` のエラーが出た場合
Vagrantでエラーに当たってちょっと調べ物したので記録しとく。
起きたこと
久しぶりに、Vagrantを使って Ubuntu 15の環境を作ろうとしたところ、 chef_zero
provisionerで以下の様なエラーが出た
Failed to mount folders in Linux guest. This is usually because the "vboxsf" file system is not available. Please verify that the guest additions are properly installed in the guest and can work properly. The command attempted was: mount -t vboxsf -o uid=`id -u ubuntu`,gid=`getent group ubuntu | cut -d: -f3` v-csn-cf1999bf2 /tmp/vagrant-chef/890ab396746b083fc8c6a52ec67db241/nodes mount -t vboxsf -o uid=`id -u ubuntu`,gid=`id -g ubuntu` v-csn-cf1999bf2 /tmp/vagrant-chef/890ab396746b083fc8c6a52ec67db241/nodes The error output from the last command was: sudo: unable to resolve host ubuntu-xenial mesg: ttyname failed: Inappropriate ioctl for device mount: unknown filesystem type 'vboxsf'
どうやら、 vboxsf
がうまく扱えていなくて、chefが使うnodesなどのディレクトリをGuest側でmountできない。
原因と対策
詳しく調べなかったが、使っていたイメージの Virtualbox GuestAdditions
がないか、バージョンが古くてうまく動かない、という状態のようだった。
この問題が発生した場合は最新GuestAdditionsを入れてやればよいが、普通にVirtualBoxの手順でいろいろやろうとすると面倒。
なので vagrnt-vbguest
pluginをinstallしておくと、imageの起動時にGuestAdditionをチェックして最新版をインストールしてくれる。
vagrant plugin install vagrant-vbguest`
今回はvagrant chef_zeroでエラーが出てたけど、vagrantで作ったimage全般でできる対策だとは思う。