Vagrant无法挂载VirtualBox共享文件夹


78

当前设置:Virtualbox 5.1.20Vagrant 1.9.3

先前的工作设置:具有Vagrant 1.9.3的Virtualbox 5.1.18

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

Vagrant无法挂载VirtualBox共享文件夹。这通常是因为文件系统“ vboxsf”不可用。该文件系统可通过VirtualBox Guest Additions和内核模块使用。请验证来宾中是否正确安装了这些来宾添加项。这不是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.20Vagrant 1.9.3进行文件夹安装?


如果您的主机上缓存的旧盒子不支持您在计算机上安装的vbguest插件的版本,也会发生这种情况。此处有更多详细信息
布拉德·帕克斯

Answers:


137

更新资料

已在VirtualBox 5.1.22中修复。

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

原始答案

就我而言,虚拟机内部的符号链接是错误的。登录虚拟机:

$ 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/时,您会发现子文件夹“其他”不存在。该行修复了以下问题:

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

现在注销虚拟机:

$ exit

并检查它是否适合您:

$ vagrant reload

但是我无法修复链接,因为/sbin/mount.vboxsf在我的盒子里不存在!

如果链接/sbin/mount.vboxsf最初不存在,则无法安装VBoxGuestAdditions。如果您在更新VirtualBox之后未下载匹配的VirtualBox Extension Pack,则可能发生这种情况(v5.2.18及更高版本应在Virtualbox更新期间自动下载它)。您现在可以执行以下操作:

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

如果没有VirtualBox Extension的更新,则可能无法安装VBoxGuestAdditions,因为安装程序会显示一条消息,而流浪汉插件vbguest无法提示答案(在vbguest v0.15.0中已“修复”)。您可以在“ vagrant up”的输出中看到这一点。应该有类似这一行:

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

8
仅供参考,这是跟踪此错误的修复程序的票证virtualbox.org/ticket/16670
edwardmlyte

1
这似乎是临时解决方法。之后,我再次遇到错误vagrant reload
Frank Henard

6
重新出现后,我降级为5.1.18-问题已解决;)
Frank Henard

2
VirtualBox 5.1.22 r115126和Vagrant 1.9.7具有相同的问题
Alexiuscrow

2
我在5.1.26中遇到了同样的问题
Kirill

46

在我的情况下,安装vbguest插件可用于VirtualBox 5.2.6和Vagrant 2.0.1:

vagrant plugin install vagrant-vbguest


1
谢谢你的工作!VirtualBox 5.2.6Vagrant 2.0.2给人GuestAdditions 5.2.6 running --- OK.现在
baikho

这个问题是针对特定版本的virtualbox和vagrant,并且已经指出,对于那些特定版本,vagrant-vbguest插件不起作用。
edwardmlyte

2
应该是最好的答案。
Abdennour TOUMI

它适用于virtualbox 5.2.8vagrant 2.0.2GuestAdditions 5.2.8已安装。
马克斯·彭

这对我也起作用-有趣的是,我已经安装了GuestAdditions,但是从Vagrant v1.8升级到v2.0并将VirtualBox从5.1升级到5.2之后,我开始出现安装错误。甚至之后vagrant plugin update。以这种方式重新安装插件对我来说固定。
Scott Byers

4

这对我有用...运行以下命令:

vagrant plugin repair

然后

vagrant plugin expunge --reinstall

然后

vagrant reload

1
小心这一点。它可能会破坏您的包装盒和您无所事事的安装。
Stuart Cusack,

太棒了。我不知道为什么这行得通,但是行得通,我非常感谢您的回答!!!!
斯威夫特

3

对我来说,以下命令以及重新启动来宾系统有助于:

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

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


这是唯一对我有用的东西。谢谢
Andre Nickatina

3

对我来说,此问题已在以下情况下解决:

环境:

  • 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

1

从homestead.yaml删除类型:“ nfs”,为我修复了它。胜利10,流浪汉1.9.7,拉拉维尔5.4,宅基地。


这个问题与另一个版本的Vagrant有关,并且无法与特定版本的Virtualbox一起使用。
edwardmlyte

1
也为我解决了.. :)
winkbrace

请注意,删除类型:“NFS”是一个坏主意,你将有速度问题上,详情请看这里:stackoverflow.com/questions/50614748/...
叶夫根尼·阿法纳西耶夫

0

对于那些在这里遇到与我几乎相同的问题的人,以下是解决方案

TLDR

  • VirtualBox guest虚拟机由于以下原因而失败 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工作

详细信息:我的环境

  • 便当/centos-7.2
  • 流浪汉版本:2.0.4
  • 虚拟盒子版本:5.2.16

资料来源


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.