Vagrant was unable to mount VirtualBox shared folders

Solution 1:

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

Solution 2:

Installing the vbguest plugin worked in my case with VirtualBox 5.2.6 and Vagrant 2.0.1:

vagrant plugin install vagrant-vbguest

Solution 3:

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:

  1. vagrant plugin install vagrant-vbguest to install the Vagrant VB Guest Plugin

  2. 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