vagrant: 在Linux客户机中无法挂载文件夹, "vboxsf" 文件系统不可用?

9

我在我的Ubuntu 14.04 64位桌面上安装了VirtualBox 4.3.10Vagrant 1.4.3

之前,我使用过vagrant技术,但这次出现了多个问题。让我描述一下我做了什么

  1. 将私有git克隆到本地系统 /opt/lampp/htdocs/{project} : 完成

  2. root@desktop:/opt/lampp/htdocs/{project}$ vagrant up

执行时终端会给出以下信息

主机(4.3.10)和客户机(4.2.0)上的GuestAdditions版本不匹配。

命令完成后会显示以下消息

在Linux guest中无法挂载文件夹。这通常是因为“vboxsf”文件系统不可用。请验证客户端是否已正确安装增强功能并可以正常工作。尝试的命令是:

...

我明白这是版本差异造成的。

  1. 检查 vagrant vbguest --status

    GuestAdditions 4.3.10 运行 --- OK。

  2. 打开浏览器并使用 http://192.168.0.33(在私有git repo的README.md文件中提到),但它不起作用。

更新

  1. 按照这里的建议安装了vagrant-vbguest

    $:sudo vagrant plugin install vagrant-vbguest

    已安装插件'vagrant-vbguest (0.10.0)'!

通过这样做,2.中描述的GuestAdditions版本差异的消息消失了。

  1. 重新启动 vagrant halt 然后 vagrant up
使用“virtualbox”提供程序将“default”机器启动...
[default] 清除先前设置的转发端口...
[default] 清除先前设置的网络接口...
[default] 根据配置准备网络接口...
[default] 转发端口...
[default] -- 22 => 2222(适配器1)
[default] -- 80 => 8080(适配器1)
[default] 启动虚拟机...
[default] 等待虚拟机启动。这可能需要几分钟时间...
[default] 虚拟机已启动并准备就绪!
GuestAdditions 4.3.10 运行中---OK。
[default] 配置和启用网络接口...
[default] 挂载共享文件夹...
[default] -- /vagrant

在Linux客户机中无法挂载文件夹。这通常是因为“vboxsf”文件系统不可用。请确认客户机上已正确安装并能正常工作的Guest Additions。尝试的命令是:
    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中更改任何内容、更改vagrant版本或其他吗?

有些人说这是一个bug,而有些人提供了针对Ubuntu < 14.04的解决方案。

请提供解决此问题的提示和建议。


找到了另一个链接:https://github.com/dotless-de/vagrant-vbguest/issues/130#issuecomment-53687256 - dkode
你能在虚拟机上执行 lsmod 命令并检查是否已安装内核模块吗?$ lsmod | grep vbox - m1keil
vboxpci 23194 0
vboxnetadp 25670 0
vboxnetflt 27613 0
vboxdrv 339502 3 vboxnetadp,vboxnetflt,vboxpci
- dkode
看起来 vboxsf 内核模块由于某些原因没有被加载。这是必需的,以便您可以使用共享文件夹。modinfo vboxsf 呢?它存在吗? - m1keil
如何检查存在?物理方式还是终端方式? - dkode
4个回答

13
 vagrant plugin install vagrant-vbguest

对我很有效(Virtual Box 5.0.22,Vagrant 1.8.4)。最初的预配花费了更长时间,因为插件在将客户机增加.iso链接到正确位置之前下载了gcc和一堆其他工具。


6

显然,在 VirtualBox 客户机附加组件 4.3.10 安装程序中存在一个错误: https://www.virtualbox.org/ticket/12879

似乎有一个简单的解决方法,就是在 Vagrant-VM 中创建一个符号链接:

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

你可以将以下内容添加到你的配置文件中,以确保不再遇到该bug:
NEWEST_VBOXGUESTADDITIONS_DIR=`find /opt/ -maxdepth 1 -mindepth 1 -name "VBoxGuestAdditions-*" | tail -n 1`;
if [[ ! -d "/usr/lib/VBoxGuestAdditions" && -n "$NEWEST_VBOXGUESTADDITIONS_DIR" ]];
then
    ln -s ${NEWEST_VBOXGUESTADDITIONS_DIR}/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions
fi

感谢您的回答,但是我现在已经转移话题了:D。稍后会再次查看。 - dkode

0
在我的情况下,通过在客户机上重建内核并运行sudo service vboxadd setup命令来修复了这个错误。

0

这行代码在“Vagrantfile”中对我来说是解决方案:

config.vm.synced_folder "./", "/vagrant", id: "vagrant-root", type: "nfs"

这对我来说在Vagrant 1.9.4和Virtual Box 5.1.20上有效。 - Andres Zapata

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接