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

dko*_*ode 8 php github vagrant ubuntu-14.04

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

早些时候,与流浪技术合作,但这次,多个问题.让我来描述我所做的

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

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

在执行时在终端上给出消息

GuestAdditions 主机(4.3.10)和来宾(4.2.0)上的版本不匹配.

命令已完成以下消息

无法在Linux guest虚拟机中装入文件夹.这通常是因为"vboxsf"文件系统不可用.请确认客人添加内容已正确安装在guest虚拟机中,并且可以正常运行.尝试的命令是:

...

我明白这是版本差异.

  1. 校验 vagrant vbguest --status

    GuestAdditions 4.3.10运行---好的.

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

UPDATE

  1. 按照此处的建议安装vagrant-vbguest

    $:sudo vagrant plugin install vagrant-vbguest

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

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

  1. 重启vagrant halt然后 vagrant up

使用'virtualbox'提供程序将计算机'默认'设置为...
[默认]清除以前设置的所有转发端口...
[默认]清除以前设置的所有网络接口...
[默认]根据配置准备网络接口...
[默认]转发端口...
[默认] - 22 => 2222(适配器1)
[默认] - 80 => 8080(适配器1)
[默认]启动虚拟机...
[默认]等待机器启动.这可能需要几分钟......
[默认]机器启动并准备就绪!
GuestAdditions 4.3.10运行---好的.
[默认]配置和启用网络接口...
[默认]挂载共享文件夹...
[默认] - /vagrant

无法在Linux guest虚拟机中装入文件夹.这通常是因为"vboxsf"文件系统不可用.请确认客人添加内容已正确安装在guest虚拟机中,并且可以正常运行.尝试的命令是:

    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
Run Code Online (Sandbox Code Playgroud)

我是否需要在本地更改任何内容vagrantfile或更改流浪汉版本或其他内容?

有人说这是一个bug,而有些人为ubuntu <14.04提供解决方案

请建议解决方案提示以及如何解决此问题?

Ste*_*eve 13

 vagrant plugin install vagrant-vbguest
Run Code Online (Sandbox Code Playgroud)

对我来说效果很好(Virtual Box 5.0.22,Vagrant 1.8.4).由于插件在将guest虚拟机添加.iso链接到正确的位置之前下载了gcc和一堆其他工具,因此最初提供的设置耗时较长.


小智 6

显然,VirtualBox Guest Additions 4.3.10安装程序中存在一个错误:https://www.virtualbox.org/ticket/12879

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

sudo ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions \
/usr/lib/VBoxGuestAdditions
Run Code Online (Sandbox Code Playgroud)

您可以将其添加到您的配置配置中,以确保您不会再次遇到该错误:

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
Run Code Online (Sandbox Code Playgroud)