У меня есть некоторые проблемы с общими папками Vagrant, моя базовая система - рабочий стол Ubuntu 13.10.
Я не понимаю, почему у меня эта ошибка - это то, что неправильно настроено? Является ли проблема NFS или дополнениями Virtualbox Guest? Я пробовал с разными ящиками, но с той же проблемой.
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
Конфигурация My 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)
Плагин vagrant-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
Я нашел здесь эту проблему рассмотренную бродячие проблемы. Два способа сделать это:
Запустите это для гостя (т.е. после того, как вы ssh в vbox через vagrant ssh
)
sudo ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions
Затем запустите vagrant reload
, чтобы правильно установить папки.
Как отметил @klang, обновите файл VBoxGuestAdditions.iso на своем mac:
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 one (http://dlc.sun.com.edgesuite.net/virtualbox/4.3.12/VBoxGuestAdditions_4.3.12.iso)
Примечание: двоичный vbox4.3.12 для os X в настоящее время недоступен
Я пришел на эту страницу, ища такое же сообщение об ошибке.
Для меня причина была другая: я запустил yum update
в системе, которая установила новое ядро. Гостевые дополнения, которые устарели, поэтому они не могли загрузить их.
Я перестроил их с помощью
sudo /etc/init.d/vboxadd setup
И еще vagrant reload
мой гость снова запустился.
Я просто добавляю его здесь, если кто-то другой попадает сюда так же, как и я.
Изменить (на комментарий KCD):
Возможно, вы получили сообщение об ошибке:
Заголовки для текущего запущенного ядра не найдены
Это можно решить, установив kernel-devel
(yum install kernel-devel
)
yum update
. Я оставляю этот комментарий, чтобы Future Austin нашел его, когда это произойдет снова.
Исправить шаг за шагом:
Если у вас нет плагина vbguest, установите его:
$ vagrant plugin install vagrant-vbguest
Запустить бродягу
Появится сообщение об ошибке.
$ vagrant up
Вход в виртуальную машину
$ vagrant ssh
Fix!
В гостевой системе (VM).
$ sudo ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions
Назад на хост, перезагрузите Vagrant
$ vagrant reload
vagrant ssh
в коробку и сделать sudo ln -s /etc/dnf/dnf.conf /etc/yum.conf
, когда Fedora переключилась с yum на dnf. С этим все закончилось (я думаю!). Спасибо @dadaso.
Обновить февраль 2016
Мне потребовалось несколько часов, чтобы решить самостоятельно. Да, эта проблема все еще существует при установке последней версии 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 в ваш гость и настроить мягкую ссылку на правильную версию гостевых дополнений (здесь, 5.0.14).
$ vagrant ssh
$ sudo ln -s /opt/VBoxGuestAdditions-5.0.14/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions
$ exit
$ vagrant reload
Вы должны быть хорошими. По умолчанию установленный диск на гостевой машине находится в /vagrant
Заключительный комментарий:
ЕСЛИ у вас все еще есть проблемы, связанные с монтированием NFS-накопителей, то вот обходной путь, который работал у меня. У меня был vagrantfile
с конфигурацией что-то вроде:
Просто удалите информацию о mount type и уменьшите настройки mount_options, чтобы они работать повсеместно. Теперь Vagrant автоматически выбирает оптимальную синхронизированную папку для вашей среды.
vagrantfile
отсутствует, как раз перед заключительным абзацем - есть ли шанс, что вы можете добавить его обратно?
Установите плагин 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
исправил это для меня
mount.vboxsf
было изменено, но установщик символически ссылается на старое местоположение.
Как упоминалось в Проблема с бродягой № 3341, это была ошибка виртуального бокса # 12879.
Он затрагивает только VirtualBox 4.3.10 и полностью исправлен в 4.3.12.
Только для справки, эта проблема произошла со мной, используя Vagrant 1.7.4 и VirtualBox 5.0.10 r104061, когда я предоставил общую папку в /
и создал символическую ссылку на мою домашнюю папку. Что-то вроде этого:
/folder
~/folder -> /folder
По-видимому, эта операция не разрешена Vagrant из-за целей безопасности и выдает описанную ошибку.
Я решил это, предоставив нужную папку прямо в мой домашний каталог, например /home/vagrant/folder
.
/
не разрешена в моей версии Vagrant (1.8.1)
Я считаю, что это самый обновленный ответ, и он работал у меня (Guest Additions Version: 5.0.6
, VirtualBox Version: 4.3.16
, Ubuntu 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
В моем случае на ранее работающем образце Ubuntu 16.04 ошибка началась после установки vagrant-vbguest для другого бродячего изображения, а затем запуска Ubuntu VM. Он обновил гостевые дополнения до 5.1.20, и с тех пор монтирования начали сбой. Обновленный флажок, apt update + upgrade и тот же, vbguest установит более новую версию 5.1.20.
Он был разрешен вручную:
sudo apt-get update
sudo apt-get install virtualbox-guest-dkms
А также отключить: config.vbguest.auto_update = false
для этой виртуальной машины (может и не понадобиться).
Это 2017. На всякий случай кто-то сталкивается с той же проблемой.
Для bento/centos-6.7 у меня была такая же ошибка. Это было решено путем добавления плагина vagrant-vbguest (0.13.0). c: > vagrant plugin install vagrant-vbguest
Эта версия 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
Моя конфигурация:
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, он пытается обновить VBoxGuestAdditions в centos-7, когда видит, что в версии 5.0.10 и гостевой версии 4.3.20 установлена другая версия VBGuestAdditions.
Я даже проверил, что существует символическая ссылка.
[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
Это не сработало, как было предложено пользователем3006381
vagrant ssh
sudo yum -y install kernel-devel
sudo yum -y update
exit
vagrant reload --provision
Решение для centos-7: как описано psychok7
Автоподстройка с диагнозом. config.vbguest.auto_update = false
Тогда vagrant destroy --force
и vagrant 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>
В конфигурации, где windows является хостом, а linux - гость, я нашел решение той же проблемы в другом месте.
Итак, снова появилось сообщение об ошибке "Не удалось установить папки в гостевой системе Linux. Обычно это происходит потому, что файловая система" vboxsf "недоступна". (...)
Это было вызвано тем, что я допустил ошибку, выполнив символическую ссылку в гостевой системе из /vagrant в/home/vagrant/vagrant. Дело в том, что каталог /vagrant - это обычный Linux-каталог с символической связью (так все нормально), но при загрузке с помощью "vagrant up" он пытается установить каталог Windows на этом месте, а каталог Windows не может работать как символическая ссылка. Хост Windows не поддерживает символические ссылки linux.
Итак, что вы можете сделать, это ssh в guest, удалите символическую ссылку, где бы вы ни находились, и перезагрузите компьютер.
В моей конфигурации это было: Vagrant 1.7.2, VBoxGuestAdditions 4.3.28 и VBox 4.3.28.
(из моего комментария выше)
Следуя этой проблеме, нужно корни:, в частности, часть комментариев, говорящих об этом:
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
После этого я, как обычно, имею дело со всеми моими виртуальными машинами (и их текущими Vagrantfiles, конечно)
Когда вам нужно что-то сделать в только что созданной виртуальной машине, чтобы заставить ее работать, что-то не так.
/usr/share/virtualbox/VBoxGuestAdditions.iso
. Однако я не проверял это!
Я запускал Vagrant с VirtualBox 5.1.X и должен был перейти на VirtualBox 5.0.40 и установить плагин vbguest для решения этой проблемы.
vagrant up
для моего бродяги. Это не удастся.vagrant plugin install vagrant-vbguest
во время работы моей виртуальной машины, чтобы установить брандмауэр. Это управляет синхронизацией версий VirtualBox Guest между хостом и гостем.vagrant reload
, чтобы перезагрузить мою виртуальную машину.Попробуйте:
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}
Run:
vagrant vbguest --do install -f -b
vagrant reload
Это, по-видимому, связано с несовместимостью с vbguest vagrant plugin и последней версией бродяг. Он пытается обновить гостевые дополнения и не выполнить это полностью/правильно.
В вашем журнале жалуется отсутствие поиска exportfs: sudo: /usr/bin/exportfs: command not found
Exportfs позволяет локальным каталогам для монтирования NFS-клиентов.
sudo: /usr/bin/exportfs: command not found
, установив символическую ссылку на реальный путь , используя команду sudo ln -s /usr/sbin/exportfs /usr/bin/exportfs
, однако ошибка о Failed to mount folders in Linux guest
сохраняются даже после этого.
Еще один шаг, который я должен был выполнить после первого предложения, сделанного kenzie, состояло в том, чтобы запустить команды mount
, перечисленные в сообщении об ошибке, с помощью sudo
из командной строки Ubuntu [14.04 Server]. После этого все было хорошо!
vagrant reload
.
5.1.20
. Этот вид заставляет меня волноваться каждый раз, когда я обновляю свою ВМ, поскольку это не первый раз :(config.vbguest.auto_update = false
в Vagrantfile