vagrant upしたらマウントに失敗する件
virtualboxを再インストールしてvagrant up
したら、以下のようなエラーが出てディレクトリがマウントできない云々となりました。この問題は、GuestAdditionsを再ビルドすることで解決することができます。
> vagrant up ... ==> default: Mounting shared folders... default: /vagrant => D:/vm/php7 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 vagrant`,gid=`getent group vagrant | cut -d: -f3` vagrant /vagrant mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` vagrant /vagrant The error output from the last command was: /sbin/mount.vboxsf: mounting failed with the error: No such device
GuestAdditionsを再ビルドするには、kernel-develがインストールされている必要があります。
kernel-develがインストールされてない状態でGuestAdditionsの再ビルドを行おうとすると、ビルドに失敗してしまいます。
※以下ゲストマシンです
$ sudo /etc/init.d/vboxadd setup Removing existing VirtualBox non-DKMS kernel modules [ OK ] Building the VirtualBox Guest Additions kernel modules The headers for the current running kernel were not found. If the following module compilation fails then this could be the reason. The missing package can be probably installed with yum install kernel-devel-2.6.32-431.3.1.el6.x86_64 Building the main Guest Additions module [FAILED] (Look at /var/log/vboxadd-install.log to find out what went wrong) Doing non-kernel setup of the Guest Additions [ OK ]
kernel-deveが入っていない場合は、まずkernel-develをインストールします。 rpmからじゃなくてもいけるらしいですが、自環境だと元々除外してないっぽいのに出てこなかったので、こちらを参考にしてインストールしました。
$ sudo yum install -y http://bay.uchicago.edu/centos-vault/6.5/updates/x86_64/Packages/kernel-devel-2.6.32-431.3.1.el6.x86_64.rpm
kernel-develがインストール済みの状態でもう一度ビルドします。
$ sudo /etc/init.d/vboxadd setup Removing existing VirtualBox non-DKMS kernel modules [ OK ] Building the VirtualBox Guest Additions kernel modules Building the main Guest Additions module [ OK ] Building the shared folder support module [ OK ] Building the OpenGL support module [ OK ] Doing non-kernel setup of the Guest Additions [ OK ] Starting the VirtualBox Guest Additions [ OK ]
追記(2016/1/16):
kernel-develインストール済みの状態でビルドに失敗する場合は、GuestAdditionsが求めているkernel-develのバージョンがより新しいものである可能性があります。上記の手順でkernel-develをインストール済みであれば、$ sudo yum -y upgrade kernel-devel
でアップデートできるので試してみてください。
ホストに戻ってvagrantを再起動すれば、マウントに成功することが確認できます。 ついでにGuestAdditionsのバージョンをホストとゲストでいい感じに揃えてくれるvagrant-vbguestもインストールしておきます。
> vagrant plugin install vagrant-vbguest > vagrant reload
以下のコマンドでGuestAdditionsのバージョンを確認してみます。ホスト/ゲスト同じであればrunning --- OK
な感じになって万事OKです。
> vagrant vbguest --status GuestAdditions 5.0.12 running --- OK.
おまけ:
vagrant-vbguestを入れているとvagrant upする度にGuestAdditionsのバージョンチェックが走るので、それを止めたい場合は以下のようにVagrantfileに書けば良い。
config.vbguest.auto_update = false