Бродячая ошибка: не удалось смонтировать папки в гостевой Linux


у меня есть некоторые проблемы с общими папками Vagrant, моя базовая система-Ubuntu 13.10 desktop.

Я не понимаю, почему у меня эта ошибка что-то неправильно настроено ? Является ли проблема NFS или гостевые дополнения Virtualbox ? Я пробовал с разных ящиков, но тот же вопрос.

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)
21 271

21 ответ:

плагин vagrant-vbguest GitHubRubyGems решить мою проблему:

$ 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

Я нашел эту проблему здесьпроблемы бродячих. два способа сделать это:

  1. запустите это на гостевой (т. е. после ssh в vbox через vagrant ssh)

    sudo ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions
    
    выполнить vagrant reload для правильного монтирования папок.
  2. как указал @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
    

обновление (16may2014)

так как iso больше нет доступный, вы можете использовать 4.3.12 один (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 позже мой гость был и работает снова.

Я просто добавляю его сюда на случай, если кто-то еще попадет сюда так же, как и я.

Edit (на KCD комментарий):
Вполне возможно, что вы получите сообщение об ошибке:

заголовки для текущего запущенного ядра не обнаружено

Это можно решить, установив kernel-devel (yum install kernel-devel)

исправить шаг за шагом:

если у вас нет плагина vbguest, установите его:

$ vagrant plugin install vagrant-vbguest

Выполнить Команду Vagrant

это показать ошибку.

$ vagrant up

войти на VM

$ vagrant ssh

исправить!

в гостевой (VM logged).

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

назад на хост, перезагрузите Vagrant

$ vagrant reload

Обновление Февраля 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_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

исправлено это для меня

Как говорится в бродячий вопрос #3341 это ошибка Virtualbox #12879.

Он влияет только на VirtualBox 4.3.10 и был полностью исправлен в 4.3.12.

Я считаю, что это самый обновленный ответ сейчас, и это сработало для меня ( 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

просто для справки, эта проблема произошла со мной, используя Vagrant 1.7.4 и VirtualBox 5.0.10 r104061, когда я подготовил общую папку в / и создал символическую ссылку на мою домашнюю папку. Что-то вроде этого:

/folder
~/folder -> /folder

по-видимому, эта операция не разрешена бродягой из-за целей безопасности и выдает описанную ошибку.

я решил это, предоставив нужную папку непосредственно в мой домашний каталог, например /home/vagrant/folder.

в моем случае на ранее работающем образе Ubuntu 16.04 ошибка началась после установки vagrant-vbguest для другого образа vagrant, а затем запуска виртуальной машины Ubuntu. Он обновил гостевые дополнения до 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 для этой виртуальной машины (возможно не обязательно).

(из моего комментария выше)

следуя за проблемой к ее корням:, в частности, часть в комментариях говорит следующее:

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, конечно)

когда вам нужно что-то сделать в недавно созданной виртуальной машине, чтобы заставить ее работать, что-то не так.

в конфигурации, где windows является хостом, а linux-гостем, я нашел решение той же проблемы в другом месте.

Так что снова, сообщение об ошибке было " не удалось смонтировать папки в гостевой системе Linux. Обычно это происходит потому, что файловая система "vboxsf" недоступна."(...)

Это было вызвано тем, что я сделал ошибку, сделав символическую ссылку внутри гостевой системы из /vagrant в /home/vagrant/vagrant. Дело в том, что каталог / vagrant-это обычный каталог linux, который имеет символическую ссылку (так что все в порядке), но при загрузке с помощью "vagrant up" он пытается смонтировать каталог windows на этом месте, и каталог windows не может работать как символическая ссылка. Windows host не поддерживает символические ссылки linux.

Итак, что вы можете сделать, это ssh в гостевой, удалить символическую ссылку, где бы она ни была, и перезагрузить машину.

в моей конфигурации это было: Vagrant 1.7.2, VBoxGuestAdditions 4.3.28 и VBox 4.3.28.

Это 2017. На всякий случай кто-то сталкивается с той же проблемой.

для bento / centos-6.7, я получал ту же ошибку. Это было решено путем добавления плагина vagrant-vbguest (0.13.0). c: > Vagrant plugin install vagrant-vbguest

url коробки: 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

Настройки:

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, когда он видит, что другая версия VBGuestAdditions установлена в Хосте 5.0.10 и гостевой 4.3.20.

Я даже проверил, что существует символическая связь.

[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

это не сработало, как было предложено user3006381

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>

ваш журнал жалуется на то, что не находит exportfs: 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}

Run:

vagrant vbguest --do install -f -b

vagrant reload

Я работал бродяга с VirtualBox 5.1.X, и пришлось перейти на VirtualBox 5.0.40, и установить плагин vbguest для решения этой проблемы.

мои действия:
  • Удалить VirtualBox 5.1.X
  • установить залетный 5.0.40
  • перезагрузите мою машину
  • выполнить vagrant up на мой залетный. Это не сработает.
  • выполнить vagrant plugin install vagrant-vbguest пока моя виртуальная машина работает, чтобы установить плагин vagrant. Это управляет синхронизацией Гостевые версии VirtualBox между хостом и гостем.
  • выполнить vagrant reload чтобы перезагрузить мою виртуальную машину
  • магия!

к настоящему времени монтаж работает на некоторых машинах (ubuntu) , а некоторые нет (centos 7) но установка плагина решает это

vagrant plugin install vagrant-vbguest

без необходимости делать что-либо еще на вершине этого, просто

vagrant reload

еще один шаг я должен был завершить после первого предложения, что Кензи сделано было для запуска mount команды, перечисленные в сообщении об ошибке с sudo из командной строки Ubuntu [14.04 Server]. После этого, все было хорошо идти!