Current setup: Virtualbox 5.1.20 with Vagrant 1.9.3
Previous working setup: Virtualbox 5.1.18 with Vagrant 1.9.3
I installed the latest version of Virtualbox and tried to start my VM. The folder mounting has stopped working. The same folder mounting works fine in Virtualbox 5.1.18. I get the following error message:
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 keys /keys
The error output from the command was:
mount: wrong fs type, bad option, bad superblock on keys,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try dmesg | tail or so.
I have tried manually installing vagrant-vbguest
plugin (via vagrant plugin install vagrant-vbguest
), but that fixed nothing. Downgrading back to 5.1.18 does resolve it, but this isn't ideal moving forward.
How can I get folder mounting working with Virtualbox 5.1.20 and Vagrant 1.9.3?
Update
Fixed in VirtualBox 5.1.22.
(https://www.virtualbox.org/ticket/16670)
Original answer
In my case a symlink inside the VM was wrong.
Log into the VM:
$ vagrant ssh
Then:
$ ls -lh /sbin/mount.vboxsf
lrwxrwxrwx 1 root root 49 Apr 19 14:05 /sbin/mount.vboxsf -> /opt/VBoxGuestAdditions-5.1.20/other/mount.vboxsf
This link is broken. When you look inside /opt/VBoxGuestAdditions-5.1.20/ you see that the subfolder "other" doesn't exists.
This line fixes that:
$ sudo ln -sf /opt/VBoxGuestAdditions-*/lib/VBoxGuestAdditions/mount.vboxsf /sbin/mount.vboxsf
Now logout of the VM:
$ exit
And check if it works for you:
$ vagrant reload
But i can't fix the link because /sbin/mount.vboxsf does not exist inside my box!
If the link /sbin/mount.vboxsf does not exists in the first place, than the VBoxGuestAdditions couldn't be installed. This can happen if you have not downloaded the matching VirtualBox Extension Pack after you updated VirtualBox (v5.2.18 and up should download it automatically during Virtualbox updates). You can do that now:
- Halt all your running VMs.
- Open the VirtualBox program.
- Start the download of the VirtualBox Extension Pack and install it.
- If you are not being asked if you want to download the VirtualBox Extension Pack, open ->File ->Check for Update, to trigger the download dialog.
If there was no update for the VirtualBox Extension, than it's possible the VBoxGuestAdditions can't be installed because the installer shows a message and the vagrant plugin vbguest can not prompt an answer (this is "fixed" in vbguest v0.15.0). You can see that in the output of "vagrant up". There should be a line similar to this one:
Do you wish to continue? [yes or no]
If that is the case you can run the installer manually. To do so, start the box:
$ vagrant up
Then trigger vbguest to try the installation again but leave the VBoxGuestAdditions ISO mounted afterwards:
$ vagrant vbguest --do install --no-cleanup
Log into the box:
$ vagrant ssh
Ran the installer manually:
$ sudo /mnt/VBoxLinuxAdditions.run
A last hope: DIY!
If nothing of the above worked, try to install the guest additions manually:
$ cd /opt
$ sudo wget -c http://download.virtualbox.org/virtualbox/5.1.28/VBoxGuestAdditions_5.1.28.iso -O VBoxGuestAdditions_5.1.28.iso
$ sudo mount VBoxGuestAdditions_5.1.28.iso -o loop /mnt
$ sudo sh /mnt/VBoxLinuxAdditions.run
Installing the vbguest plugin worked in my case with VirtualBox 5.2.6 and Vagrant 2.0.1:
vagrant plugin install vagrant-vbguest
This worked for me... run the following:
vagrant plugin repair
Then
vagrant plugin expunge --reinstall
Then
vagrant reload
Removing type: "nfs" from homestead.yaml fixed it for me. Win 10, Vagrant 1.9.7, laravel 5.4, homestead.
For me, the problem was fixed under the following conditions:
Environment:
- VirtualBox version 6.0.4r128413
- Vagrant version 2.2.3
Steps:
Go to your project directory from the terminal or command line (cd
) and run the following commands:
vagrant plugin install vagrant-vbguest
to install the Vagrant VB Guest Plugin
vagrant up
If you get an error regarding vboxsf
not being available. Then maybe your VirtualBox Guest Additions are not installed properly. Hopefully, the commands below will fix your problem.
vagrant ssh
sudo yum -y install kernel-devel
sudo yum update -y
exit
vagrant halt
vagrant up --provision
For me the following commands followed by a reboot of the guest system helped:
cd /opt/VBoxGuestAdditions-*/init
sudo ./vboxadd setup
I found the solution here. Referring to this post you need to stop vboxadd before triggering the commands (I didn't do so since I don't know what vboxadd is).
For those who land here with almost the same problem as me, below is the solution
TLDR
- VirtualBox guest fail because of
system is currently not set up to build kernel modules
- Solution is uninstall
kernel-headers.x86_64 0:3.10.0-862.9.1.el7
- Then install
kernel-devel-3.10.0-327.el7.x86_64
Solution
vagrant ssh
sudo rpm -e kernel-devel-3.10.0-862.9.1.el7.x86_64
sudo wget ftp://mirror.switch.ch/pool/4/mirror/scientificlinux/7.0/x86_64/updates/security/kernel-devel-3.10.0-327.el7.x86_64.rpm
//download the file
sudo rpm -Uvh kernel-devel-3.10.0-327.el7.x86_64.rpm
//use the file downloaded on step 3
exit
vagrant reload
Details: Problem
- Do vagrant up but fail with similar error except
The error output from the command was:
/sbin/mount.vboxsf: mounting failed with the error: No such device
- Do further reading of the logs and I notice below key words
Installing Virtualbox Guest Additions 5.2.16 - guest version is 5.1.10
An error occurred during installation of VirtualBox Guest Additions
This system is currently not set up to build kernel modules.
Please install the Linux kernel "header" files matching the current kernel
packages containing the headers are probably: kernel-devel kernel-devel-3.10.0-327.el7.x86_64
- Read logs further
Package kernel-headers.x86_64 0:3.10.0-862.9.1.el7 will be installed
No package kernel-devel-3.10.0-327.el7.x86_64 available.
- My guest is I need
kernel-devel-3.10.0-327.el7.x86_64
to works
Details: My environment
- bento/centos-7.2
- vagrant version: 2.0.4
- virtual box version: 5.2.16
Sources
- How to uninstall kernel header 3.10.0-862
- How to install kernel header 3.10.0-327