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

我与Vagrant共享文件夹有一些问题,我的基本系统是Ubuntu 13.10桌面。

我不明白为什么我有这个错误是不是正确的configuration? 是NFS问题还是Virtualbox Guest Additions? 我曾尝试过不同的许多盒子,但同样的问题。

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 

这是vagrant up之后的完整过程:

 $ vagrant up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Importing base box 'u131032'... ==> default: Matching MAC address for NAT networking... ==> default: Setting the name of the VM: vagrant_default_1396020504136_46442 ==> 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: Adapter 2: hostonly ==> 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: Error: Connection timeout. Retrying... default: Error: Remote connection disconnect. Retrying... default: Error: Remote connection disconnect. Retrying... default: Error: Remote connection disconnect. Retrying... default: Error: Remote connection disconnect. Retrying... default: Error: Remote connection disconnect. Retrying... default: Error: Remote connection disconnect. Retrying... default: Error: Remote connection disconnect. Retrying... default: Error: Remote connection disconnect. Retrying... default: Error: Remote connection disconnect. Retrying... default: Error: Remote connection disconnect. Retrying... default: Error: Remote connection disconnect. Retrying... default: Error: Remote connection disconnect. Retrying... ==> default: Machine booted and ready! GuestAdditions versions on your host (4.3.10) and guest (4.2.16) do not match. * Stopping VirtualBox Additions ...done. Reading package lists... Building dependency tree... Reading state information... The following packages were automatically installed and are no longer required: dkms libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libfontenc1 libgl1-mesa-dri libglapi-mesa libice6 libllvm3.3 libpciaccess0 libpixman-1-0 libsm6 libtxc-dxtn-s2tc0 libxaw7 libxcomposite1 libxdamage1 libxfixes3 libxfont1 libxkbfile1 libxmu6 libxpm4 libxrandr2 libxrender1 libxt6 x11-common x11-xkb-utils xfonts-base xfonts-encodings xfonts-utils xserver-common xserver-xorg-core Use 'apt-get autoremove' to remove them. The following packages will be REMOVED: virtualbox-guest-dkms* virtualbox-guest-utils* virtualbox-guest-x11* 0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded. After this operation, 11.1 MB disk space will be freed. (Reading database ... 65615 files and directories currently installed.) Removing virtualbox-guest-dkms ... -------- Uninstall Beginning -------- Module: virtualbox-guest Version: 4.2.16 Kernel: 3.11.0-18-generic (i686) ------------------------------------- Status: Before uninstall, this module version was ACTIVE on this kernel. vboxguest.ko: - Uninstallation - Deleting from: /lib/modules/3.11.0-18-generic/updates/dkms/ - Original module - No original module was found for this module on this kernel. - Use the dkms install command to reinstall any previous module version. vboxsf.ko: - Uninstallation - Deleting from: /lib/modules/3.11.0-18-generic/updates/dkms/ - Original module - No original module was found for this module on this kernel. - Use the dkms install command to reinstall any previous module version. vboxvideo.ko: - Uninstallation - Deleting from: /lib/modules/3.11.0-18-generic/updates/dkms/ - Original module - No original module was found for this module on this kernel. - Use the dkms install command to reinstall any previous module version. depmod.... DKMS: uninstall completed. ------------------------------ Deleting module version: 4.2.16 completely from the DKMS tree. ------------------------------ Done. Removing virtualbox-guest-x11 ... Purging configuration files for virtualbox-guest-x11 ... Removing virtualbox-guest-utils ... Purging configuration files for virtualbox-guest-utils ... Processing triggers for ureadahead ... Processing triggers for man-db ... Reading package lists... Building dependency tree... Reading state information... dkms is already the newest version. dkms set to manually installed. linux-headers-3.11.0-18-generic is already the newest version. linux-headers-3.11.0-18-generic set to manually installed. The following packages were automatically installed and are no longer required: libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libfontenc1 libgl1-mesa-dri libglapi-mesa libice6 libllvm3.3 libpciaccess0 libpixman-1-0 libsm6 libtxc-dxtn-s2tc0 libxaw7 libxcomposite1 libxdamage1 libxfixes3 libxfont1 libxkbfile1 libxmu6 libxpm4 libxrandr2 libxrender1 libxt6 x11-common x11-xkb-utils xfonts-base xfonts-encodings xfonts-utils xserver-common xserver-xorg-core Use 'apt-get autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Copy iso file /usr/share/virtualbox/VBoxGuestAdditions.iso into the box /tmp/VBoxGuestAdditions.iso mount: block device /tmp/VBoxGuestAdditions.iso is write-protected, mounting read-only Installing Virtualbox Guest Additions 4.3.10 - guest version is 4.2.16 Verifying archive integrity... All good. Uncompressing VirtualBox 4.3.10 Guest Additions for Linux............ VirtualBox Guest Additions installer Copying additional installer modules ... Installing additional modules ... Removing existing VirtualBox DKMS kernel modules ...done. Removing existing VirtualBox non-DKMS kernel modules ...done. Building the VirtualBox Guest Additions kernel modules ...done. Doing non-kernel setup of the Guest Additions ...done. Starting the VirtualBox Guest Additions ...done. Installing the Window System drivers Could not find the X.Org or XFree86 Window System, skipping. An error occurred during installation of VirtualBox Guest Additions 4.3.10. Some functionality may not work as intended. In most cases it is OK that the "Window System drivers" installation failed. ==> default: Checking for guest additions in VM... ==> default: Setting hostname... ==> default: Configuring and enabling network interfaces... ==> default: Exporting NFS shared folders... ==> default: Preparing to edit /etc/exports. Administrator privileges will be required... nfsd running sudo: /usr/bin/exportfs: command not found ==> default: Mounting NFS shared folders... ==> default: Mounting shared folders... default: /vagrant => /home/me/Documents/Work/project/vagrant 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 

我的Vagrantfileconfiguration是:

 # -*- mode: ruby -*- # vi: set ft=ruby : # Vagrantfile API/syntax version. Don't touch unless you know what you're doing! VAGRANTFILE_API_VERSION = "2" personalization = File.expand_path("../Personalization", __FILE__) load personalization Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = $base_box config.vm.box_url = $base_box_url config.vm.hostname = $vhost + ".dev" config.hostsupdater.aliases = ["api." + $vhost + ".dev", "mysql." + $vhost + ".dev"] config.hostsupdater.remove_on_suspend = true # set auto_update to ture to check the correct # additions version when booting the machine config.vbguest.auto_update = true config.vbguest.auto_reboot = true config.vm.network :private_network, ip: $ip config.vm.synced_folder "../", "/srv/www/vhosts/" + $vhost + ".dev", type: "nfs" config.vm.provider :virtualbox do |v| v.customize ["modifyvm", :id, "--memory", 2048] v.customize ["modifyvm", :id, "--cpus", "1"] v.customize ["modifyvm", :id, "--cpuexecutioncap", "100"] v.customize ["modifyvm", :id, "--ioapic", "off"] v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] end config.vm.provision "shell" do |s| s.path = "vagrant-bootstrap.sh" s.args = $vhost + " " + $mysql_password + " " + $application_database end end 

个性化文件是:

 # Name of the vhost to create $vhost = "project" # Use the Ubunut 32bit or 64bit $base_box_url = "http://cloud-images.ubuntu.com/vagrant/saucy/current/saucy-server-cloudimg-i386-vagrant-disk1.box" # VM IP $ip = "192.168.7.7" # Base box name $base_box = "u131032" # MySQL $mysql_password = "admin" $application_database = "project" 

以下插件在Vagrant中启用:

 $ vagrant plugin list vagrant-hostsupdater (0.0.11) vagrant-login (1.0.1, system) vagrant-share (1.0.1, system) vagrant-vbguest (0.10.0) 

插件vagrant-vbguest GitHub上 RubyGems的 解决了我的问题:

 $ vagrant plugin install vagrant-vbguest 

输出:

 $ vagrant reload ==> default: Attempting graceful shutdown of VM... ... ==> default: Machine booted and ready! GuestAdditions 4.3.12 running --- OK. ==> default: Checking for guest additions in VM... ==> default: Configuring and enabling network interfaces... ==> default: Exporting NFS shared folders... ==> default: Preparing to edit /etc/exports. Administrator privileges will be required... ==> default: Mounting NFS shared folders... ==> default: VM already provisioned. Run `vagrant provision` or use `--provision` to force it 

只要确保你正在运行最新版本的VirtualBox

我发现这个问题在这里解决stream浪问题。 两种方式来做到这一点:

  1. 在客户端运行(例如,通过vagrant ssh进入vbox后)

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

    然后运行vagrant reload正确安装文件夹。

  2. 正如@klang指出的,更新你的mac上的VBoxGuestAdditions.iso文件:

     wget https://www.virtualbox.org/download/testcase/VBoxGuestAdditions_4.3.11-93070.iso‌​ sudo cp VBoxGuestAdditions_4.3.11-93070.iso /Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso 

更新(16may2014)

由于iso不再可用,您可以使用4.3.12( http://dlc.sun.com.edgesuite.net/virtualbox/4.3.12/VBoxGuestAdditions_4.3.12.iso

注意:目前os x的二进制vbox4.3.12不可用

我到达这个页面,同时寻找相同的错误信息。 对我来说,原因是不同的:我已经在安装新内核的系统上运行了yum update 。 客人补充过时,所以不能加载它们。

我重build了他们

 sudo /etc/init.d/vboxadd setup 

后来我的客人vagrant reload开始运行。

我只是把它添加到这里,以防别人像我一样来到这里。

编辑(根据KCD的评论):
你可能会得到一个错误:

没有find当前正在运行的内核的标头

这可以通过安装kernel-develyum install kernel-devel )来解决,

修复一步一步:

如果你没有vbguest插件,请安装它:

 $ vagrant plugin install vagrant-vbguest 

运行Vagrant

这是显示错误。

 $ vagrant up 

在虚拟机上login

 $ vagrant ssh 

固定!

在客人(虚拟机login)。

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

回到主机上,重新加载stream浪汉

 $ vagrant reload 

2016年2月更新

这花了我几个小时来独立解决。 是的,最新的Vagrant和Virtual Box安装仍然存在这个问题:

 △ vagrant -v Vagrant 1.8.1 △ vboxmanage -v 5.0.14r105127 

对我来说症状是消息像是:

Checking for guest additions in VM... The guest additions on this VM do not match the installed version of VirtualBox!

其次是挂载NFS驱动器失败。

1)。 安装vagrant-vbguest插件。

根据您使用的Vagrant版本,发出以下命令之一:

 # For vagrant < 1.1.5 $ vagrant gem install vagrant-vbguest # For vagrant 1.1.5+ $ vagrant plugin install vagrant-vbguest 

接下来,做vagrant halt ,然后是vagrant up – 可能你还有问题。

2)。 SSH到你的客人,并build立一个软链接到正确版本的客人添加(在这里,5.0.14)。

 $ vagrant ssh $ sudo ln -s /opt/VBoxGuestAdditions-5.0.14/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions $ exit $ vagrant reload 

你应该都很好。 默认情况下,guest /vagrant机上安装的驱动器处于/vagrant

最后评论:

如果您仍然有与安装NFS驱动器有关的问题,那么这里是一个解决方法,为我工作。 我有一个vagrantfileconfiguration类似于:

只需删除装载types信息,然后细化mount_options设置,以便它们通用。 Vagrant现在将自动为您的环境select最佳的同步文件夹选项。

运行以下命令安装vagrant-vbguest插件:

 vagrant plugin install vagrant-vbguest 

我遇到了与Centos 7相同的问题,我认为是由于内核过时与VirtualBox更新版本的结合。 基于Blizz的更新,这是我的工作(vagrant-vbguest插件已经安装):

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

对于我来说,使用VBoxGuestAdditions 5.1.20,问题是/sbin/mount.vboxsf指向错误的位置。

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

给我修好了

正如Vagrant#3341中提到的那样,这是一个Virtualbox的bug#12879 。

它只影响VirtualBox 4.3.10,并在4.3.12中完全修复。

我相信这是现在最新的答案,它适用于我( Guest Additions Version: 5.0.6VirtualBox Version: 4.3.16Ubuntu 14.04 LTS

https://github.com/mitchellh/vagrant/issues/3341#issuecomment-144271026

基本上我说:

 Simple and Quick Solution for Failed to mount folders in Linux guest issue. Add the following line to your Homestead/Vagrantfile: config.vbguest.auto_update = false Your Homestead/Vagrantfile should looks like this: /... Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # To avoid install and uninstall VBoxGuessAdditions during vagrant provisioning. config.vbguest.auto_update = false .../ Save it and execute $ vagrant destroy --force $ vagrant up 

只是为了将来的参考,这个问题发生在我身上,使用Vagrant 1.7.4和VirtualBox 5.0.10 r104061,当我在/创build了一个共享文件夹,并且创build了一个到我的home文件夹的符号链接。 像这样的东西:

 /folder ~/folder -> /folder 

显然,这个操作由于安全目的而不被Vagrant所允许,并抛出所描述的错误。

我通过将所需文件夹直接设置到我的主目录(例如/home/vagrant/folder

在我以前的工作Ubuntu的16.04图像的情况下,错误启动后安装vagrant-vbguest为不同的stream浪形象,然后启动Ubuntu虚拟机。 它将客人的补充升级到5.1.20,从那以后坐骑开始失败。 更新了框,更新+升级和相同,vbguest会安装较新的5.1.20版本。

这是通过手动运行解决的:

 sudo apt-get update sudo apt-get install virtualbox-guest-dkms 

还可以为此虚拟机禁用: config.vbguest.auto_update = false (可能不是必需的)。

(从我上面的评论)

在问题的根源之后:特别是评论中的这个部分:

 wget https://www.virtualbox.org/download/testcase/VBoxGuestAdditions_4.3.11-93070.iso‌​ sudo cp VBoxGuestAdditions_4.3.11-93070.iso /Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso 

做完这些之后,我所有的虚拟机(当然还有当前的stream浪文件)

当你必须在新创build的虚拟机中做某些事情时,为了使它工作,有些事情是错误的。

在windows是主机的configuration中,linux是客户端,我在其他地方find了同样问题的解决scheme。

所以,错误消息是“无法在Linux guest虚拟机中安装文件夹”,这通常是因为“vboxsf”文件系统不可用。 (……)

这是因为我通过在客户系统内部进行符号链接从/stream浪/进入/stream浪/stream浪而造成的。 重点是,目录/ vagrant是一个正常的linux目录有一个符号链接(所以都可以),但是当通过“vagrant up”启动时,它会尝试在该位置挂载windows目录,而windows目录不能作为符号链接。 Windows主机不支持Linux符号链接。

那么你可以做什么,是ssh到客人,删除符号链接,无论你有它,并重新加载机器。

在我的configuration中是:Vagrant 1.7.2,VBoxGuestAdditions 4.3.28和VBox 4.3.28。

这是2017年,以防有人面临同样的问题。

对于bento / centos-6.7,我得到了同样的错误。 这是通过添加plugin vagrant-vbguest(0.13.0)解决的。 c:> vagrant插件安装vagrant-vbguest

Boxurl: http : //opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-7.0_chef-provisionerless.box

这个centos-7版本给了我同样的错误

错误:

 ==> build: Mounting shared folders... build: /vagrant => C:/projects/ Vagrant was unable to mount VirtualBox shared folders. This is usually because the filesystem "vboxsf" is not available. This filesystem is made available via the VirtualBox Guest Additions and kernel module. Please verify that these guest additions are properly installed in the guest. This is not a bug in Vagrant and is usually caused by a faulty Vagrant box. For context, the command attempted was: mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant The error output from the command was: /sbin/mount.vboxsf: mounting failed with the error: No such device 

我的configuration:

 C:\projects>vagrant -v Vagrant 1.9.1 C:\projects> vboxmanage -v 5.0.10r104061 C:\projects>vagrant plugin list vagrant-cachier (1.2.1) vagrant-hostmanager (1.8.5) vagrant-hosts (2.8.0) vagrant-omnibus (1.5.0) vagrant-share (1.1.6, system) vagrant-vbguest (0.13.0) vagrant-vbox-snapshot (0.0.10) 

由于我已经有了vagrant-vbguest插件,因此当它看到不同版本的VBGuestAdditions安装在Host 5.0.10和Guest 4.3.20中时,它会尝试更新centos-7中的VBoxGuestAdditions。

我甚至检查过符号链接是否存在。

 [root@build VBoxGuestAdditions]# ls -lrt /usr/lib lrwxrwxrwx. 1 root root 53 Jan 14 12:06 VBoxGuestAdditions -> /opt/VBoxGuestAdditions-5.0.10/lib/VBoxGuestAdditions [root@build VBoxGuestAdditions]# mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant /sbin/mount.vboxsf: mounting failed with the error: No such device 

这不正如user3006381build议的那样工作

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

解决scheme为centos-7:由psychok7工作

Diabled自动更新。 config.vbguest.auto_update = false然后vagrant destroy --forcevagrant up

结果:

 javareport: Guest Additions Version: 4.3.20 javareport: VirtualBox Version: 5.0 ==> javareport: Setting hostname... ==> javareport: Configuring and enabling network interfaces... ==> javareport: Mounting shared folders... javareport: /vagrant => C:/projects C:\project> 

你的日志抱怨没有findexportfs: sudo: /usr/bin/exportfs: command not found

exportfs使本地目录可用于NFS客户端的挂载。

这似乎是由于与vbguest vagrant插件和最新版本的vagrant不兼容导致的。 它正试图更新客人的补充,并没有完全/正确地做到这一点。

尝试像这样:

 vagrant plugin install vagrant-vbguest 

在Vagrantfile中添加:

 config.vbguest.iso_path = "http://download.virtualbox.org/virtualbox/VERSION/VBoxGuestAdditions_VERSION.iso" config.vbguest.auto_update = false config.vbguest.installer_arguments = %w{--nox11 -- --force} 

跑:

 vagrant vbguest --do install -f -b vagrant reload 

我用VirtualBox 5.1.X运行Vagrant,不得不降级到VirtualBox 5.0.40,并安装vbguest插件来解决这个问题。

我的步骤是:

  • 卸载VirtualBox 5.1.X
  • 安装Vagrant 5.0.40
  • 重新启动我的机器
  • 为我的stream浪者奔跑。 它会失败。
  • 在我的虚拟机运行时运行vagrant plugin install vagrant-vbguest ,安装vagrant插件。 这pipe理主机和来宾之间的同步VirtualBox访客版本。
  • 运行vagrant reload加载我的虚拟机vagrant reload加载
  • 魔法!

在遵循kenzie提出的第一个build议之后,我必须完成一个步骤,即使用Ubuntu命令行[14.04服务器]中的sudo来运行错误消息中列出的mount命令。 之后,一切都很好去!