Solution for unable to mount shared folders to Vagrant VM
When does this error happen?
When using CentOS VM deployed with vagrant, update kernel to latest:
dnf upgrade
Stop/start VM from CLI
vagrant halt
vagrant up
VM starts but can't mount shared folders.
C:\boxes\centos8> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'bento/centos-8' version '202109.10.0' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
default: No guest additions were detected on the base box for this VM! Guest
default: additions are required for forwarded ports, shared folders, host only
default: networking, and more. If SSH fails on this machine, please install
default: the guest additions and repackage the box to continue.
default:
default: This is not an error message; everything may continue to work properly,
default: in which case you may ignore this message.
==> default: Mounting shared folders...
default: /vagrant => C:/boxes/centos8
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,_netdev vagrant /vagrant
The error output from the command was:
/sbin/mount.vboxsf: mounting failed with the error: No such device
PS C:\boxes\centos8>
Root Cause:
Support for newer Linux Kernels is not available for the currently installed Oracle VM Virtual Box Manager. Check the following page for more info for which release adds support for newer kernel versions: https://www.virtualbox.org/wiki/Changelog
Solution:
Update Oracle VM Virtual Box Manager by removing the old version and installing the new version. Normally this step does not erase your VM but take your backup anyways. Install vagrant-vbguest plugin from cli.
vagrant plugin install vagrant-vbguest
Run vagrant up once again. The problem should be solved.
C:\boxes\centos8> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'bento/centos-8' version '202109.10.0' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
==> default: Machine booted and ready!
Got different reports about installed GuestAdditions version:
Virtualbox on your host claims:
VBoxService inside the vm claims: 6.1.26
Going on, assuming VBoxService is correct...
[default] GuestAdditions versions on your host (6.1.28) and guest (6.1.26) do not match.
Got different reports about installed GuestAdditions version:
Virtualbox on your host claims:
VBoxService inside the vm claims: 6.1.26
Going on, assuming VBoxService is correct...
Last metadata expiration check: 0:44:36 ago on Fri 22 Oct 2021 05:36:16 AM UTC.
Package binutils-2.30-93.el8.x86_64 is already installed.
Package make-1:4.2.1-10.el8.x86_64 is already installed.
Package perl-interpreter-4:5.26.3-419.el8_4.1.x86_64 is already installed.
Package bzip2-1.0.6-26.el8.x86_64 is already installed.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
elfutils-libelf-devel x86_64 0.182-3.el8 baseos 59 k
gcc x86_64 8.4.1-1.el8 appstream 23 M
kernel-devel x86_64 4.18.0-305.19.1.el8_4 baseos 18 M
Installing dependencies:
annobin x86_64 9.50-1.el8 appstream 107 k
cpp x86_64 8.4.1-1.el8 appstream 10 M
glibc-devel x86_64 2.28-151.el8 baseos 1.0 M
glibc-headers x86_64 2.28-151.el8 baseos 478 k
isl x86_64 0.16.1-6.el8 appstream 841 k
kernel-headers x86_64 4.18.0-305.19.1.el8_4 baseos 7.1 M
libmpc x86_64 1.1.0-9.1.el8 appstream 61 k
libpkgconf x86_64 1.4.2-1.el8 baseos 35 k
libxcrypt-devel x86_64 4.1.1-4.el8 baseos 25 k
pkgconf x86_64 1.4.2-1.el8 baseos 38 k
pkgconf-m4 noarch 1.4.2-1.el8 baseos 17 k
pkgconf-pkg-config x86_64 1.4.2-1.el8 baseos 15 k
zlib-devel x86_64 1.2.11-17.el8 baseos 58 k
Transaction Summary
================================================================================
Install 16 Packages
Total download size: 62 M
Installed size: 147 M
Downloading Packages:
...
...
Installed:
annobin-9.50-1.el8.x86_64
cpp-8.4.1-1.el8.x86_64
elfutils-libelf-devel-0.182-3.el8.x86_64
gcc-8.4.1-1.el8.x86_64
glibc-devel-2.28-151.el8.x86_64
glibc-headers-2.28-151.el8.x86_64
isl-0.16.1-6.el8.x86_64
kernel-devel-4.18.0-305.19.1.el8_4.x86_64
kernel-headers-4.18.0-305.19.1.el8_4.x86_64
libmpc-1.1.0-9.1.el8.x86_64
libpkgconf-1.4.2-1.el8.x86_64
libxcrypt-devel-4.1.1-4.el8.x86_64
pkgconf-1.4.2-1.el8.x86_64
pkgconf-m4-1.4.2-1.el8.noarch
pkgconf-pkg-config-1.4.2-1.el8.x86_64
zlib-devel-1.2.11-17.el8.x86_64
Complete!
Copy iso file C:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso into the box /tmp/VBoxGuestAdditions.iso
Mounting Virtualbox Guest Additions ISO to: /mnt
mount: /mnt: WARNING: device write-protected, mounted read-only.
Installing Virtualbox Guest Additions 6.1.28 - guest version is 6.1.26
Verifying archive integrity... All good.
Uncompressing VirtualBox 6.1.28 Guest Additions for Linux........
VirtualBox Guest Additions installer
Removing installed version 6.1.26 of VirtualBox Guest Additions...
Copying additional installer modules ...
Installing additional modules ...
VirtualBox Guest Additions: Starting.
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel
modules. This may take a while.
VirtualBox Guest Additions: To build modules for other installed kernels, run
VirtualBox Guest Additions: /sbin/rcvboxadd quicksetup <version>
VirtualBox Guest Additions: or
VirtualBox Guest Additions: /sbin/rcvboxadd quicksetup all
VirtualBox Guest Additions: Building the modules for kernel
4.18.0-305.19.1.el8_4.x86_64.
Redirecting to /bin/systemctl start vboxadd.service
Redirecting to /bin/systemctl start vboxadd-service.service
Unmounting Virtualbox Guest Additions ISO from: /mnt
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
default: /vagrant => C:/boxes/centos8
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.
C:\boxes\centos8>