Vagrant Error: Unable to Mount VirtualBox Shared Folders (Guest Additions, vboxsf)

前端 未结 11 1452
滥情空心
滥情空心 2021-01-31 08:32

The Issue

I installed Vagrant on Windows 10 so I can create a personal local development environment in a virtual machine. Everything I\'ve read about Vagrant said I c

相关标签:
11条回答
  • 2021-01-31 09:09

    Summary

    The problem with the synced/shared folders not working anymore all of a sudden is, that the VirtualBox Guest additions kernel module is not loaded.

    The problem is not directly connected to the VirtualBox version! It may have been the case in the past, but the following explanation covers about 95% of the occurences of this problem.


    Explanation

    This is mainly caused by an automatic update of the linux kernel, for example by having cronapt running in the virtual machine.

    If the kernel gets a new version, the dkms module for the guest additions can not be restarted after a reboot of the virtual machine. The service file /etc/init.d/virtualbox-guest-utils checks if there is a kernel module in

    /lib/modules/`uname -r`
    

    folder for vboxguest and vboxsf.

    Let the kernel version at initial setup of the guest additions be: 1.2.3

    The updated kernel has the version: 1.2.4

    uname -r would result in 1.2.4, while the dkms module was installed with the kernel version 1.2.3. This would cause the virtualbox guest addition service to abort execution and fail with an error message like modprobe xxxx failed.....

    Solution

    What we need to do is, install the headers of the kernel alongside with the new kernel version, so that the dkms module for the virtualbox guest additions can be automatically rebuilt with them.

    Fortunately there is a meta package, that lets us have the newest version of the kernel headers installed.

    It seems to be named differently in different linux flavours. Here is a small list of them.

    Debian

    sudo apt install linux-headers-amd64

    Ubuntu

    sudo apt install linux-headers-generic

    CentOS (untested)

    Thx to @Jayen Chondigara

    sudo yum -y install kernel-headers kernel-devel

    0 讨论(0)
  • 2021-01-31 09:16

    This problem is solved in VirtualBox 5.1.18.

    0 讨论(0)
  • 2021-01-31 09:20

    There is also a regression in Virtualbox 5.1.20

    Vagrant issue: https://github.com/mitchellh/vagrant/issues/8502

    Virtualbox issue: https://www.virtualbox.org/ticket/16670#comment:4

    The fix for now is to role back to Virtualbox 5.1.18 where it worked.

    0 讨论(0)
  • 2021-01-31 09:22

    There can be multiple cause :

    1. The version of the guest addition is not matching the version of VirtualBox, for this you can update the version of the guest addition by running vagrant plugin install vagrant-vbguest
    2. You hit a bug of vagrant with NFS on Windows : should be fixed so maybe try to update to the latest release of Vagrant and VirtualBox
    3. In this github issue https://github.com/fideloper/Vaprobash/issues/92, there is two thing that you can test : use the winnfsd plugin (https://github.com/winnfsd/vagrant-winnfsd) or try to configure the default mount with no NFS

    I had the same issue, and it was just the guest addition that was not up-to-date ...

    UDPATE : The bug on Vagrant with NFS on Windows (point 2) has been fixed in version 5.1.18, re-appears in version 5.1.20 and is fixed again in version 5.2.

    0 讨论(0)
  • 2021-01-31 09:24

    Guest Additions is incompatible with the version of VirtualBox. Autoupdating VirtualBox Guest Additions will solve probably related issue:

    vagrant plugin install vagrant-vbguest

    I exprerienced this issue with these stack:

    • Windows 10
    • Oracle VirtualBox 5.1.16
    • Vagrant 1.9.2
    • config.vm.box = "hashicorp/precise64"
    0 讨论(0)
  • 2021-01-31 09:27

    You can downgrade VirtualBox or edit the line in the file:

    On my setup this was Line 206 of:

    C:\HashiCorp\Vagrant\embedded\gems\gems\vagrant-1.9.2\lib\vagrant\util\platform.rb

    on my host machine.

    I did this and it worked fine on Windows 10! I would like to add what I did with line 206:

    Before edit: "\\?\" + path.gsub("/", "\")

    After edit: path.gsub("/", "\")

    0 讨论(0)
提交回复
热议问题