Vagrant 错误:无法在 Linux 客户机中挂载文件夹

Posted

技术标签:

【中文标题】Vagrant 错误:无法在 Linux 客户机中挂载文件夹【英文标题】:Vagrant error : Failed to mount folders in Linux guest 【发布时间】:2014-05-08 04:28:11 【问题描述】:

我对 Vagrant 共享文件夹有一些问题,我的基本系统是 Ubuntu 13.10 桌面。

我不明白为什么我有这个错误是不是配置不正确?是 NFS 问题还是 Virtualbox Guest Additions ?我尝试了不同的许多盒子,但同样的问题。

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

这是vagrant up之后的完整流程:

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'u131032'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: vagrant_default_1396020504136_46442
==> 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: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> 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: Error: Connection timeout. Retrying...
    default: Error: Remote connection disconnect. Retrying...
    default: Error: Remote connection disconnect. Retrying...
    default: Error: Remote connection disconnect. Retrying...
    default: Error: Remote connection disconnect. Retrying...
    default: Error: Remote connection disconnect. Retrying...
    default: Error: Remote connection disconnect. Retrying...
    default: Error: Remote connection disconnect. Retrying...
    default: Error: Remote connection disconnect. Retrying...
    default: Error: Remote connection disconnect. Retrying...
    default: Error: Remote connection disconnect. Retrying...
    default: Error: Remote connection disconnect. Retrying...
    default: Error: Remote connection disconnect. Retrying...
==> default: Machine booted and ready!
GuestAdditions versions on your host (4.3.10) and guest (4.2.16) do not match.
 * Stopping VirtualBox Additions
   ...done.
Reading package lists...
Building dependency tree...
Reading state information...
The following packages were automatically installed and are no longer required:
  dkms libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libfontenc1
  libgl1-mesa-dri libglapi-mesa libice6 libllvm3.3 libpciaccess0 libpixman-1-0
  libsm6 libtxc-dxtn-s2tc0 libxaw7 libxcomposite1 libxdamage1 libxfixes3
  libxfont1 libxkbfile1 libxmu6 libxpm4 libxrandr2 libxrender1 libxt6
  x11-common x11-xkb-utils xfonts-base xfonts-encodings xfonts-utils
  xserver-common xserver-xorg-core
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  virtualbox-guest-dkms* virtualbox-guest-utils* virtualbox-guest-x11*
0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded.
After this operation, 11.1 MB disk space will be freed.
(Reading database ... 65615 files and directories currently installed.)
Removing virtualbox-guest-dkms ...

-------- Uninstall Beginning --------
Module:  virtualbox-guest
Version: 4.2.16
Kernel:  3.11.0-18-generic (i686)
-------------------------------------

Status: Before uninstall, this module version was ACTIVE on this kernel.

vboxguest.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.11.0-18-generic/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


vboxsf.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.11.0-18-generic/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


vboxvideo.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.11.0-18-generic/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.

depmod....

DKMS: uninstall completed.

------------------------------
Deleting module version: 4.2.16
completely from the DKMS tree.
------------------------------
Done.
Removing virtualbox-guest-x11 ...
Purging configuration files for virtualbox-guest-x11 ...
Removing virtualbox-guest-utils ...
Purging configuration files for virtualbox-guest-utils ...
Processing triggers for ureadahead ...
Processing triggers for man-db ...
Reading package lists...
Building dependency tree...
Reading state information...
dkms is already the newest version.
dkms set to manually installed.
linux-headers-3.11.0-18-generic is already the newest version.
linux-headers-3.11.0-18-generic set to manually installed.
The following packages were automatically installed and are no longer required:
  libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libfontenc1 libgl1-mesa-dri
  libglapi-mesa libice6 libllvm3.3 libpciaccess0 libpixman-1-0 libsm6
  libtxc-dxtn-s2tc0 libxaw7 libxcomposite1 libxdamage1 libxfixes3 libxfont1
  libxkbfile1 libxmu6 libxpm4 libxrandr2 libxrender1 libxt6 x11-common
  x11-xkb-utils xfonts-base xfonts-encodings xfonts-utils xserver-common
  xserver-xorg-core
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Copy iso file /usr/share/virtualbox/VBoxGuestAdditions.iso into the box /tmp/VBoxGuestAdditions.iso
mount: block device /tmp/VBoxGuestAdditions.iso is write-protected, mounting read-only
Installing Virtualbox Guest Additions 4.3.10 - guest version is 4.2.16
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.3.10 Guest Additions for Linux............
VirtualBox Guest Additions installer
Copying additional installer modules ...
Installing additional modules ...
Removing existing VirtualBox DKMS kernel modules ...done.
Removing existing VirtualBox non-DKMS kernel modules ...done.
Building the VirtualBox Guest Additions kernel modules ...done.
Doing non-kernel setup of the Guest Additions ...done.
Starting the VirtualBox Guest Additions ...done.
Installing the Window System drivers
Could not find the X.Org or XFree86 Window System, skipping.
An error occurred during installation of VirtualBox Guest Additions 4.3.10. Some functionality may not work as intended.
In most cases it is OK that the "Window System drivers" installation failed.
==> default: Checking for guest additions in VM...
==> default: Setting hostname...
==> default: Configuring and enabling network interfaces...
==> default: Exporting NFS shared folders...
==> default: Preparing to edit /etc/exports. Administrator privileges will be required...
nfsd running
sudo: /usr/bin/exportfs: command not found
==> default: Mounting NFS shared folders...
==> default: Mounting shared folders...
    default: /vagrant => /home/me/Documents/Work/project/vagrant
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

我的 Vagrantfile 配置是:

# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

personalization = File.expand_path("../Personalization", __FILE__)
load personalization

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = $base_box
  config.vm.box_url = $base_box_url

  config.vm.hostname = $vhost + ".dev"

  config.hostsupdater.aliases = ["api." + $vhost + ".dev", "mysql." + $vhost + ".dev"]
  config.hostsupdater.remove_on_suspend = true

  # set auto_update to ture to check the correct 
  # additions version when booting the machine
  config.vbguest.auto_update = true
  config.vbguest.auto_reboot = true

  config.vm.network :private_network, ip: $ip

  config.vm.synced_folder "../", "/srv/www/vhosts/" + $vhost + ".dev", type: "nfs"

  config.vm.provider :virtualbox do |v|
    v.customize ["modifyvm", :id, "--memory", 2048]
    v.customize ["modifyvm", :id, "--cpus", "1"]
    v.customize ["modifyvm", :id, "--cpuexecutioncap", "100"]
    v.customize ["modifyvm", :id, "--ioapic", "off"]
    v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
  end

  config.vm.provision "shell" do |s|
    s.path = "vagrant-bootstrap.sh"
    s.args = $vhost + " " + $mysql_password + " " + $application_database
  end
end

个性化文件是:

# Name of the vhost to create
$vhost = "project"

# Use the Ubunut 32bit or 64bit
$base_box_url = "http://cloud-images.ubuntu.com/vagrant/saucy/current/saucy-server-cloudimg-i386-vagrant-disk1.box"

# VM IP
$ip = "192.168.7.7"

# Base box name
$base_box = "u131032"

# MySQL
$mysql_password = "admin"
$application_database = "project"

在 Vagrant 中启用了以下插件:

$ vagrant plugin list
vagrant-hostsupdater (0.0.11)
vagrant-login (1.0.1, system)
vagrant-share (1.0.1, system)
vagrant-vbguest (0.10.0)

【问题讨论】:

这个问题在我更新虚拟盒子5.1.20后也发生在我身上。这种让我每次更新我的虚拟机时都会担心,因为这不是第一次 :( @GusDeCooL 您可以在 Vagrantfile 中使用 config.vbguest.auto_update = false 关闭来宾添加的自动更新 【参考方案1】:

插件 vagrant-vbguest 解决了我的问题:

$ vagrant plugin install vagrant-vbguest

输出:

$ vagrant reload
==> default: Attempting graceful shutdown of VM...
...
==> default: Machine booted and ready!
GuestAdditions 4.3.12 running --- OK.
==> default: Checking for guest additions in VM...
==> default: Configuring and enabling network interfaces...
==> default: Exporting NFS shared folders...
==> default: Preparing to edit /etc/exports. Administrator privileges will be required...
==> default: Mounting NFS shared folders...
==> default: VM already provisioned. Run `vagrant provision` or use `--provision` to force it

只要确保您运行的是最新版本的 VirtualBox

【讨论】:

我正在使用 vagrant-vbguest 插件,但是在我更新到 VirtualBox-4.3.12-9 之前,这并没有为我解决任何问题。 这是唯一为我解决的问题。在我这样做之后,客人 VboxAdditions 更新,并与我的主人匹配。我们一切顺利。我只需要在来宾和主机上保持相同的版本。感谢指针@karlingen 我在安装插件后开始遇到这个问题。卸载它并不能解决问题。 jee 我可以通过发布这个单行代码来节省大约 20 小时的谷歌搜索、重新配置等......你的“给我买一个啤酒按钮”在哪里...... 当心,如果你让它config.vbguest.auto_update = true(默认)github.com/dotless-de/vagrant-vbguest/issues/141,这个插件可能导致一个几乎相同的问题【参考方案2】:

我发现这个问题在这里 vagrant issues. 解决了两种方法:

    在访客上运行此程序(即在您通过 vagrant ssh SSH 进入 vbox 之后)

    sudo ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions
    

    然后运行vagrant reload 以正确挂载文件夹。

    正如@klang 指出的,在你的mac 上更新VBoxGuestAdditions.iso 文件:

    wget https://www.virtualbox.org/download/testcase/VBoxGuestAdditions_4.3.11-93070.iso‌​
    sudo cp VBoxGuestAdditions_4.3.11-93070.iso /Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso
    

更新(2014 年 5 月 16 日)

由于iso不再可用,您可以使用4.3.12的(http://dlc.sun.com.edgesuite.net/virtualbox/4.3.12/VBoxGuestAdditions_4.3.12.iso)

注意:os X 的二进制 vbox4.3.12 目前不可用

【讨论】:

您可能只需要事后重新加载 vagrant reload 即可重新挂载共享文件夹 有谁知道一种方法可以将它作为 VagrantFile 的一部分包含在内,以便在安装驱动器之前执行? @JasonAustin github.com/mitchellh/vagrant/issues/3341 wget https://www.virtualbox.org/download/testcase/VBoxGuestAdditions_4.3.11-93070.iso; sudo cp VBoxGuestAdditions_4.3.11-93070.iso /Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso .. 之后,一切照常。 使用带有Vagrant 1.3.5VirtualBox 4.3.10Win 7 框,答案#1 对我不起作用。我仍然收到unable to mount ... 错误 推荐的修复方法是选项一,如最初发布的here。选项二中 ISO 文件的 URL 不再有效并抛出 404。【参考方案3】:

我在寻找相同的错误消息时到达此页面。 对我来说,原因不同:我在安装了新内核的系统上运行了yum update。客人添加的内容已过时,因此无法加载。

我用

重建了它们
sudo /etc/init.d/vboxadd setup 

然后vagrant reload 稍后我的客人又启动并运行了。

我只是在此处添加它,以防其他人以与我相同的方式到达这里。

编辑(根据 KCD 的评论): 您可能会收到一条错误消息:

没有找到当前运行内核的头文件

这可以通过安装kernel-develyum install kernel-devel)解决

【讨论】:

谢谢。我忘了我跑了一个yum update。我留下这条评论,以便未来奥斯汀在再次发生这种情况时找到它。 我在 ubuntu 中运行了 apt-get update,当这种情况再次发生时留下评论以备将来使用 :-) 现在和未来的 Loïc 只是感谢你 :)(忘了我也跑了一个 yum update The headers for the current running kernel were not found 可能会失败,并要求您使用yum install kernel-devel 哪个有效 我还必须安装 gcc 才能让它工作。总结一下:1)yum install kernel-devel-$(uname -r)和2)yum install gcc;最后,退出 VM 并执行vagrant reload。这是在 Centos 7 Vagrant 盒子上 (bento/centos-7.1)【参考方案4】:

逐步修复:

如果您没有 vbguest 插件,请安装它:

$ vagrant plugin install vagrant-vbguest

运行流浪者

显示错误。

$ vagrant up

在虚拟机上登录

$ vagrant ssh

修复!

在来宾中(VM 登录)。

$ sudo ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions

回到主机,重新加载 Vagrant

$ vagrant reload

【讨论】:

我认为这是最好和最透明的解决方案 这行得通,但在 Fedora 22 中,我必须将 vagrant ssh 放入盒子并执行 sudo ln -s /etc/dnf/dnf.conf /etc/yum.conf,因为 Fedora 从 yum 切换到 dnf。这样,事情就完成了(我想!)。谢谢@dadaso。【参考方案5】:

2016 年 2 月更新

这花了我几个小时来独立解决。是的,最新的 Vagrant 和 Virtual Box 安装仍然存在这个问题:

△  vagrant -v
Vagrant 1.8.1
△  vboxmanage -v
5.0.14r105127

对我来说,症状是这样的消息:

Checking for guest additions in VM... The guest additions on this VM do not match the installed version of VirtualBox!

随后安装 NFS 驱动器失败。

1)。安装vagrant-vbguest 插件。

根据您使用的 Vagrant 版本,发出以下命令之一:

# For vagrant < 1.1.5
$ vagrant gem install vagrant-vbguest

# For vagrant 1.1.5+
$ vagrant plugin install vagrant-vbguest

接下来,执行vagrant halt,然后执行vagrant up - 您可能仍有问题。

2)。 ssh 进入您的访客并设置指向正确版本的访客添加的软链接(此处为 5.0.14)。

$ vagrant ssh

$ sudo ln -s /opt/VBoxGuestAdditions-5.0.14/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions
$ exit

$ vagrant reload

你应该一切都好。默认情况下,guest 上挂载的驱动器位于 /vagrant

最后的评论:

如果您仍然遇到与安装 NFS 驱动器相关的问题,那么这里有一个对我有用的解决方法。我有一个vagrantfile,其配置类似于:

只需删除安装type 信息,并缩小mount_options 设置,以便它们通用。 Vagrant 现在将自动为您的环境选择最佳同步文件夹选项。

【讨论】:

谢谢您...您的vagrantfile 配置丢失了,但就在最后一段之前-您有机会将其添加回来吗? 这对我仍然不起作用。我下载了一个新的 Vagrant。 vboxmanage 已经显示了上面的版本。 OP 推荐的软链接已经存在。 你的 Vagrantfile 配置在哪里?您的答案中缺少它。【参考方案6】:

通过运行以下命令安装 vagrant-vbguest 插件:

vagrant plugin install vagrant-vbguest

【讨论】:

【参考方案7】:

我在使用 Centos 7 时遇到了同样的问题,我认为是由于内核过时以及 VirtualBox 的更新版本所致。根据 Blizz 的更新,这对我有用(已安装 vagrant-vbguest 插件):

vagrant ssh
sudo yum -y install kernel-devel
sudo yum -y update
exit
vagrant reload --provision

【讨论】:

【参考方案8】:

对我来说,使用 VBoxGuestAdditions 5.1.20 时,问题在于 /sbin/mount.vboxsf 指向了错误的位置。

sudo ln -sf /opt/VBoxGuestAdditions-5.1.20/lib/VBoxGuestAdditions/mount.vboxsf /sbin/mount.vboxsf

帮我修好了

【讨论】:

我不是 Vagrant 用户,但我在 OSX 主机上运行的 Fedora Core 客户机上遇到了同样的问题。我认为问题在于 mount.vboxsf 的位置已更改,但安装程序正在符号链接到旧位置。 这是访客添加 5.1.20 中已确认的错误:virtualbox.org/ticket/16670【参考方案9】:

正如Vagrant issue #3341 中提到的,这是Virtualbox bug #12879。

它只影响 VirtualBox 4.3.10,并在 4.3.12 中完全修复。

【讨论】:

这是我正在做的,因为他们已经删除了那个下载链接 请注意,此错误已在 VirtualBox 4.3.12 中修复。 我在 VirtualBox 4.3.26 中有完全相同的错误 4.3.28 对我来说,同样的问题。 5.0.14r105127 对我来说和同样的问题【参考方案10】:

我相信这是现在最新的答案,它对我有用(Guest Additions Version: 5.0.6VirtualBox Version: 4.3.16Ubuntu 14.04 LTS

https://github.com/mitchellh/vagrant/issues/3341#issuecomment-144271026

基本上我说:

Simple and Quick Solution for Failed to mount folders in Linux guest issue.

Add the following line to your Homestead/Vagrantfile:

config.vbguest.auto_update = false
Your Homestead/Vagrantfile should looks like this:

/...

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

   # To avoid install and uninstall VBoxGuessAdditions during vagrant provisioning.
    config.vbguest.auto_update = false

.../
Save it and execute

$ vagrant destroy --force
$ vagrant up

【讨论】:

可能需要注意的是,'vagrant destroy' 会炸毁你的虚拟机,包括你在其中配置/安装的任何东西,除非我弄错了。 这对我来说是唯一也是最快的解决方案。来自here 的“Ubuntu 精确 64 VirtualBox”图像存在问题。 Windows 上的 VirtualBox 5.1.2 和 Vagrant 1.8.5。【参考方案11】:

仅供参考,我使用 Vagrant 1.7.4 和 VirtualBox 5.0.10 r104061 时发生了这个问题,当时我在 / 中配置了一个共享文件夹并创建了一个指向我的主文件夹的符号链接。像这样的:

/folder
~/folder -> /folder

显然,出于安全考虑,Vagrant 不允许此操作并引发描述的错误。

我通过将所需文件夹直接配置到我的主目录来解决它,例如/home/vagrant/folder

【讨论】:

非常感谢。这也是我的问题。 正确,/ 中的共享文件夹在我的 Vagrant 版本中也不允许 (1.8.1)【参考方案12】:

在我之前工作的 Ubuntu 16.04 映像上,错误是在为不同的 vagrant 映像安装 vagrant-vbguest,然后启动 Ubuntu VM 后开始的。它将来宾添加升级到 5.1.20,从那时起安装开始失败。更新了盒子,apt update + upgrade 一样,vbguest 会安装更新的 5.1.20 版本。

手动运行解决了:

sudo apt-get update
sudo apt-get install virtualbox-guest-dkms 

同时禁用:config.vbguest.auto_update = false 用于此 VM(可能没有必要)。

【讨论】:

确实有同样的问题。忽略guest和host版本不匹配的警告,关闭自动更新。【参考方案13】:

(来自我上面的评论)

追寻问题的根源:,特别是 cmets 中的部分:

wget https://www.virtualbox.org/download/testcase/VBoxGuestAdditions_4.3.11-93070.iso‌​ 
sudo cp VBoxGuestAdditions_4.3.11-93070.iso /Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso

完成此操作后,我的所有虚拟机(当然还有它们当前的 Vagrantfile)都照常营业

当您必须在新创建的虚拟机中执行某些操作以使其正常工作时,出现了问题。

【讨论】:

如果您使用的是 linux,我想您必须将文件复制到 /usr/share/virtualbox/VBoxGuestAdditions.iso。但是我没有测试它!【参考方案14】:

在 windows 是主机,linux 是客户机的配置中,我在其他地方找到了相同问题的解决方案。

同样,错误消息是 “无法在 Linux 客户机中挂载文件夹。这通常是因为“vboxsf”文件系统不可用。” (...)

这是因为我在来宾系统中从 /vagrant 到 /home/vagrant/vagrant 进行符号链接时犯了错误。关键是,目录 /vagrant 是一个普通的 linux 目录,它有一个符号链接(所以一切正常),但是当通过“vagrant up”启动时,它会尝试在那个地方挂载 windows 目录,而 windows 目录不能作为一个符号链接。 Windows 主机不支持 linux 符号链接。

那么你可以做的就是通过 ssh 进入来宾,从你拥有的任何地方删除符号链接,然后重新加载机器。

在我的配置中是:Vagrant 1.7.2、VBoxGuestAdditions 4.3.28 和 VBox 4.3.28。

【讨论】:

【参考方案15】:

这是 2017 年。以防万一有人面临同样的问题。

对于bento/centos-6.7,我遇到了同样的错误。通过添加插件 vagrant-vbguest (0.13.0) 解决了这个问题。 c:> vagrant 插件安装 vagrant-vbguest

邮箱地址:http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-7.0_chef-provisionerless.box

这个 centos-7 版本给了我同样的错误

错误:

==> build: Mounting shared folders...
    build: /vagrant => C:/projects/
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 vagrant /vagrant

The error output from the command was:

/sbin/mount.vboxsf: mounting failed with the error: No such device

我的配置:

C:\projects>vagrant -v
Vagrant 1.9.1

C:\projects> vboxmanage -v
5.0.10r104061

C:\projects>vagrant plugin list
vagrant-cachier (1.2.1)
vagrant-hostmanager (1.8.5)
vagrant-hosts (2.8.0)
vagrant-omnibus (1.5.0)
vagrant-share (1.1.6, system)
vagrant-vbguest (0.13.0)
vagrant-vbox-snapshot (0.0.10)

由于我已经有 vagrant-vbguest 插件,当它看到主机 5.0.10 和来宾 4.3.20 中安装了不同版本的 VBGuestAdditions 时,它会尝试更新 centos-7 中的 VBoxGuestAdditions。

我什至检查过符号链接是否存在。

[root@build VBoxGuestAdditions]# ls -lrt /usr/lib
lrwxrwxrwx.  1 root root   53 Jan 14 12:06 VBoxGuestAdditions -> /opt/VBoxGuestAdditions-5.0.10/lib/VBoxGuestAdditions
[root@build VBoxGuestAdditions]# mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant
/sbin/mount.vboxsf: mounting failed with the error: No such device

这没有按照 user3006381 的建议工作

vagrant ssh
sudo yum -y install kernel-devel
sudo yum -y update
exit
vagrant reload --provision

centos-7 的解决方案:由psychok7 给出的工作

禁用自动更新。 config.vbguest.auto_update = false 然后vagrant destroy --forcevagrant up

结果:

javareport: Guest Additions Version: 4.3.20
javareport: VirtualBox Version: 5.0
==> javareport: Setting hostname...
==> javareport: Configuring and enabling network interfaces...
==> javareport: Mounting shared folders...
javareport: /vagrant => C:/projects

C:\project>

【讨论】:

对我来说是 2017 年,但仍然出现此错误。你的修复看起来很有希望。我会尝试并报告。【参考方案16】:

现在安装可以在某些机器(ubuntu)上工作,而有些则不能(centos 7) 但是安装插件解决了它

vagrant plugin install vagrant-vbguest

除此之外无需做任何其他事情,只需

vagrant reload

【讨论】:

【参考方案17】:

您的日志抱怨找不到 exportfs: sudo: /usr/bin/exportfs: command not found

exportfs 使本地目录可供 NFS 客户端挂载。

【讨论】:

我已通过使用命令sudo ln -s /usr/sbin/exportfs /usr/bin/exportfs 将符号链接设置为真实路径来解决有关sudo: /usr/bin/exportfs: command not found 的问题,但是即使在此之后,有关Failed to mount folders in Linux guest 的错误仍然存​​在。【参考方案18】:

这似乎是由于与 vbguest vagrant 插件和最新版本的 vagrant 不兼容。它正在尝试更新来宾添加并且未能完全/正确地完成。

【讨论】:

据我所见,vagrant-vbguest 正确地将虚拟机更新为最新的 (4.3.10) GuestAdditions - 不幸的是,最新的 GuestAdditions 对 linux 来宾有一个错误。【参考方案19】:

试试吧:

vagrant plugin install vagrant-vbguest

在 Vagrantfile 中添加:

config.vbguest.iso_path = "http://download.virtualbox.org/virtualbox/VERSION/VBoxGuestAdditions_VERSION.iso"
config.vbguest.auto_update = false
config.vbguest.installer_arguments = %w--nox11 -- --force

运行:

vagrant vbguest --do install -f -b

vagrant reload

【讨论】:

【参考方案20】:

我用 VirtualBox 5.1.X 运行 Vagrant,不得不降级到 VirtualBox 5.0.40,并安装 vbguest 插件来解决这个问题。

我的步骤是:

卸载 VirtualBox 5.1.X 安装Vagrant 5.0.40 重启我的机器 为我的流浪者运行vagrant up。它会失败。 在我的 VM 运行时运行 vagrant plugin install vagrant-vbguest,以安装 vagrant 插件。这管理在主机和来宾之间同步 VirtualBox 来宾版本。 运行vagrant reload 重新加载我的虚拟机 魔法!

【讨论】:

【参考方案21】:
vagrant plugin install vagrant-vbguest
vagrant destroy #clean rhel/yum repos
vagrant up

在配置文件上:

config.vbguest.auto_update = false #important so that any changes to the base image don't affect on reload

【讨论】:

【参考方案22】:

在遵循kenzie 提出的第一个建议后,我必须完成的另一个步骤是从 Ubuntu 命令行 [14.04 服务器] 运行带有sudo 的错误消息中列出的mount 命令。之后,一切顺利!

【讨论】:

应该运行vagrant reload

以上是关于Vagrant 错误:无法在 Linux 客户机中挂载文件夹的主要内容,如果未能解决你的问题,请参考以下文章

Vagrant 错误:无法挂载 VirtualBox 共享文件夹(Guest Additions,vboxsf)

基于vagrant工具在win7下免密登录linux

无法将 Ngrok 与 Vagrant 连接

间歇性`错误:无法打开显示:localhost:10.0`与Vagrant

Vagrant box add - 无法连接到cloud-images.ubuntu.com端口443:超时

Vagrant / Redis - 无法从主机连接