Vagrant无法挂载VirtualBox共享文件夹

时间:2017-04-19 09:56:29

标签: vagrant virtualbox vagrant-plugin

当前设置: Virtualbox 5.1.20 Vagrant 1.9.3

以前的工作设置: Virtualbox 5.1.18 Vagrant 1.9.3

我安装了最新版本的Virtualbox并尝试启动我的VM。文件夹安装已停止工作。相同的文件夹安装在 Virtualbox 5.1.18 中正常工作。我收到以下错误消息:

  

Vagrant无法挂载VirtualBox共享文件夹。这通常是因为文件系统" vboxsf"不可用。该文件系统通过VirtualBox Guest Additions和内核模块提供。请验证这些客人添加内容是否已在guest虚拟机中正确安装。这不是Vagrant中的错误,通常是由错误的Vagrant框引起的。对于上下文,尝试的命令是:

 mount -t vboxsf -o uid=1000,gid=1000 keys /keys 
     

命令输出的错误是:

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.

我尝试过手动安装vagrant-vbguest插件(通过vagrant plugin install vagrant-vbguest),但没有修复任何内容。降级回5.1.18确实可以解决问题,但这不是理想的进展。

如何使用 Virtualbox 5.1.20 Vagrant 1.9.3 来安装文件夹?

10 个答案:

答案 0 :(得分:119)

<强>更新

  

已在VirtualBox 5.1.22中修复。

https://www.virtualbox.org/ticket/16670

原始回答

在我的情况下,VM中的符号链接是错误的。 登录VM:

$ vagrant ssh

然后:

$ 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

此链接已损坏。当您查看/opt/VBoxGuestAdditions-5.1.20/时,您会看到子文件夹&#34;其他&#34;不存在。 这一行修复了:

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

现在注销VM:

$ exit

并检查它是否适合您:

$ vagrant reload

但是我无法修复该链接,因为我的框内不存在/sbin/mount.vboxsf!

如果首先不存在链接/sbin/mount.vboxsf,则无法安装VBoxGuestAdditions。如果您在更新VirtualBox后未下载匹配的VirtualBox扩展包(v5.2.18及更高版本应在Virtualbox更新期间自动下载),则会发生这种情况。你现在可以这样做:

  • 暂停所有正在运行的虚拟机。
  • 打开VirtualBox程序。
  • 开始下载VirtualBox Extension Pack并安装它。
  • 如果您没有被问到是否要下载VirtualBox扩展包,请打开 - > gt;文件 - &gt;检查更新,以触发下载对话框。

如果VirtualBox扩展没有更新,那么可能无法安装VBoxGuestAdditions,因为安装程序会显示一条消息而且vagrant插件vbguest无法提示答案({{3 }})。你可以在&#34; vagrant up&#34;的输出中看到。应该有一条类似于这一行:

Do you wish to continue? [yes or no]

如果是这种情况,您可以手动运行安装程序。为此,请启动框:

$ vagrant up

然后触发vbguest再次尝试安装,但之后保留了VBoxGuestAdditions ISO:

$ vagrant vbguest --do install --no-cleanup

登录方框:

$ vagrant ssh

手动操作安装程序:

$ sudo /mnt/VBoxLinuxAdditions.run

最后的希望:DIY!

如果上述情况无效,请尝试手动安装来宾添加:

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

答案 1 :(得分:30)

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

vagrant plugin install vagrant-vbguest

答案 2 :(得分:2)

这对我有用......运行以下内容:

vagrant plugin repair

然后

vagrant plugin expunge --reinstall

然后

vagrant reload

答案 3 :(得分:1)

删除类型:来自homestead.yaml的“nfs”为我修复了它。赢10,Vagrant 1.9.7,laravel 5.4,宅基地。

答案 4 :(得分:1)

对我来说,该问题在以下情况下得以解决:

环境:

  • VirtualBox版本6.0.4r128413
  • 流浪者版本2.2.3

步骤:

从终端或命令行(cd)转到您的项目目录,然后运行以下命令:

  1. vagrant plugin install vagrant-vbguest安装Vagrant VB Guest插件

  2. vagrant up

如果遇到关于vboxsf不可用的错误。然后,可能您的VirtualBox Guest Additions没有正确安装。希望下面的命令能解决您的问题。

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

答案 5 :(得分:1)

运行这个命令:

 vagrant vbguest --do install --no-cleanup

您可能有答案(安装 VirtualBox Guest Additions xxx 时发生错误某些功能可能无法按预期工作。在大多数情况下,“Windows 系统驱动程序”安装失败是可以的。< /strong>)

别担心,它会起作用的。

答案 6 :(得分:0)

对我来说,以下命令后续重新启动来宾系统有帮助:

cd /opt/VBoxGuestAdditions-*/init  
sudo ./vboxadd setup

我找到了解决方案here。参考这篇文章你需要在触发命令之前停止vboxadd(我没有这样做,因为我不知道vboxadd是什么)。

答案 7 :(得分:0)

对于那些遇到与我几乎相同的问题的人,下面是解决方法

TLDR

  • VirtualBox来宾由于system is currently not set up to build kernel modules而失败
  • 解决方案是卸载kernel-headers.x86_64 0:3.10.0-862.9.1.el7
  • 然后安装kernel-devel-3.10.0-327.el7.x86_64

解决方案

  1. vagrant ssh

  2. sudo rpm -e kernel-devel-3.10.0-862.9.1.el7.x86_64

  3. 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 //下载文件

  4. sudo rpm -Uvh kernel-devel-3.10.0-327.el7.x86_64.rpm //使用在第3步下载的文件

  5. exit

  6. vagrant reload

详细信息:问题

  1. 无所事事,但失败并出现类似错误,除了
  

该命令的错误输出为:

     

/sbin/mount.vboxsf:安装失败,并显示以下错误:没有此类设备

  1. 进一步阅读日志,我注意到下面的关键词
  

安装Virtualbox Guest Additions 5.2.16-访客版本为5.1.10

     

在安装VirtualBox Guest Additions期间发生错误

     

该系统当前未设置为构建内核模块。

     

请安装与当前内核匹配的Linux内核“头文件”

     

包含标头的软件包可能是:kernel-devel kernel-devel-3.10.0-327.el7.x86_64

  1. 进一步阅读日志
  

将安装软件包kernel-headers.x86_64 0:3.10.0-862.9.1.el7

     

没有可用的软件包kernel-devel-3.10.0-327.el7.x86_64。

  1. 我的客人是我需要kernel-devel-3.10.0-327.el7.x86_64上班吗

详细信息:我的环境

  • bento / centos-7.2
  • 无效版本:2.0.4
  • 虚拟盒版本:5.2.16

来源

答案 8 :(得分:0)

我要做的是运行以下命令将nfs添加到Windows

vagrant plugin install vagrant-winnfsd

来源:https://peshmerge.io/how-to-speed-up-vagrant-on-windows-10-using-nfs/

答案 9 :(得分:0)

接受的答案似乎有点冗长,对我的案例不起作用。

我的问题是:
使用命令(在主机上)安装的 Virtualhost 来宾添加(在来宾机器上):

vagrant plugin install vagrant-vbguest

与主机上安装的 virtualbox 版本不匹配,我不断收到此错误。

enter image description here

这个命令(在主机上)帮助我更清楚地理解:

vagrant vbguest --status

它将验证主机和来宾计算机上的来宾添加是否一致。 如果您收到来宾添加不匹配警告,然后通过 SSH 连接到您的虚拟机并首先运行以下命令以在您的机器内安装来宾添加:

sudo apt-get install virtualbox-guest-x11

然后,您可以使用以下命令强制在主机和来宾上安装正确版本的来宾添加:

vagrant vbguest --do install

之后你必须重新加载虚拟机:

vagrant reload

现在您可以再次使用以下命令确认它们是否匹配:

vagrant vbguest --status

References 1
References 2