Vagrant错误:无法在Linux guest虚拟机中装入文件夹

时间:2014-10-21 08:46:05

标签: vagrant virtualbox

我有一个流浪错误。日志如下:

vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> 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: 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: Warning: Connection timeout. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant => /Users/diguage/box/centos
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

我谷歌吧。 StackOverflow有同样的问题:

Vagrant error : Failed to mount folders in Linux guest

我把它作为最佳答案:here。不同的是我下载了VBoxGuestAdditions_4.3.18.iso。但它没有用。

我尝试第二个答案:here。它也没用。

所以,我不得不问这个问题。

我的环境是:

  • Mac OSX 10.10
  • vagrant 1.6.3
  • CentOS 6.5版(最终版)
  • 内核2.6.32-431.29.2.el6.x86_64
  • VirtualBox 4.3.18

PS:

我使用了chef / centos-6.5框。我先启动这个盒子,没关系。但是我sudo yum update,然后是sudo yum clean,重启该框,导出错误。

3 个答案:

答案 0 :(得分:5)

使用以下对我来说很好。

vagrant plugin install vagrant-vbguest

答案 1 :(得分:2)

我在相同的设置中遇到了同样的问题,我注意到问题只有centos 6.5,所以我使用的是chef / centos-6.6并且它一直运行良好。 6.5和6.6之间的差别很小,因此迁移代码时不应该有任何问题。这是厨师盒的link

修改

好的,我最后需要一个6.5盒子,所以我完成了它。核心问题是CentOS基础仓库不包含内核头文件(Ubuntu)。首先需要在/etc/yum.repos.d/CentOS-Vault.repo中添加适当的存储库,然后需要启用它们。你追加的内容应该是这样的:

[C6.5-centosplus]
name=CentOS-6.5 - CentOSPlus
baseurl=http://vault.centos.org/6.5/centosplus/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=1

您还需要检查/etc/yum.conf文件,并确保没有任何排除项,例如:

exclude=kernel*

如果是这样暂时评论这个,但一定要在最后取消注释。

现在,您可以为内核安装必要的标头。标题依赖于kernel-devel,所以我们先把它抓起来。

yum install kernel-devel-$(uname -r)

然后,抓住标题

yum install kernel-headers-$(uname -r)

最后,您需要dkms包

yum install dkms

返回并取消注释yum.conf中的排除项,您应该重启。只安装了那个,你就可以使用:

vagrant package --base MyBase

这将为您提供可重复使用的CentOS 6.5盒,您可以按需获取。希望这对你来说太晚了。

答案 2 :(得分:0)

我使用Vagrant 1.8.1,VirtualBox 5.0.18,Chef 12.10.10主机MacOSX El Capitan和访客CentOS7体验过这一点。 我尝试在guest虚拟机中安装kernel-devel,安装最新的GuestAdittions并运行yum update,但这些都不适用于我,因此我在自定义同步文件夹和chef临时文件夹中更改了“nfs”的安装类型,并且它成功了!

在Vagrantfile中,我的同步文件夹:

config.vm.synced_folder ".", "/vagrant", type: "nfs"

和我的chef_solo配置:

chef.cookbooks_path = ["chef/cookbooks/"]
chef.synced_folder_type = "nfs"