我有一些Vagrant共享文件夹的问题,我的基本系统是Ubuntu 13.10桌面.
我不明白为什么我有这个错误是没有正确配置的东西?是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
我的Vagrantfile配置是:
# -*- 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)
karlingen.. 355
插件流浪汉-vbguest 解决了我的问题:
$ 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
插件流浪汉-vbguest 解决了我的问题:
$ 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
我发现这个问题在这里解决了流浪问题.两种方法:
在guest上运行此命令(即在通过vsh进入vbox之后vagrant ssh
)
sudo ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions
然后运行vagrant reload
以正确安装文件夹.
正如@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
由于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
安装了新内核的系统上运行了一个.客户添加过时,因此无法加载它们.
我用它重建了它们
sudo /etc/init.d/vboxadd setup
和vagrant reload
后来我的客人是重新启动和运行.
我只是在这里添加它,以防其他人像我一样来到这里.
编辑(根据KCD的评论):
您可能会收到错误消息:
找不到当前运行的内核的标头
这可以通过安装kernel-devel
(yum install kernel-devel
)解决
一步一步修复:
如果您没有vbguest插件,请安装它:
$ vagrant plugin install vagrant-vbguest
运行流浪汉
它显示错误.
$ vagrant up
登录VM
$ vagrant ssh
固定!
在guest虚拟机中(VM已记录).
$ sudo ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions
回到主机上,重新加载Vagrant
$ 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到您的访客并设置一个软链接到正确版本的Guest Additions(这里,5.0.14).
$ vagrant ssh $ sudo ln -s /opt/VBoxGuestAdditions-5.0.14/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions $ exit $ vagrant reload
你应该都很好.默认情况下,guest虚拟机上安装的驱动器位于/vagrant
最终评论:
如果您仍然遇到与安装NFS驱动器相关的问题,那么这是一个适合我的解决方法.我有一个vagrantfile
配置类似于:
只需删除安装类型信息,然后减少mount_options设置,使它们普遍适用.Vagrant现在将自动为您的环境选择最佳的同步文件夹选项.
运行此命令安装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
为我修好了