Ошибка Vagrant: Unable to Mount VirtualBox Shared Folders (Guest Additions, vboxsf)

Выпуск

Я установил Vagrant на Windows 10, чтобы создать личную локальную среду разработки на виртуальной машине. Все, что я читал о Vagrant, говорит, что я могу даже запустить несколько систем и протестировать связь между ними с помощью проброса портов NAT. Но сначала я просто хочу создать одну виртуальную машину среды разработки, прежде чем я зайду слишком далеко с остальным.

Я установил VirtualBox, Vagrant, PuTTy и PuTTYGen, согласно этому руководству SitePoint: https://www.sitepoint.com/getting-started-vagrant-windows/. Затем я создал папку проекта vagrant на диске C:, выполнил vagrant init, удалил Vagrantfile и, наконец, vagrant init ubuntu/trusty64. Затем я выполнил vagrant up, но процесс завершился с ошибкой:

Vagrant не смог смонтировать общие папки VirtualBox. Обычно это происходит потому что файловая система "vboxsf" недоступна. Эта файловая система доступна через гостевые дополнения VirtualBox и модуль ядра. Пожалуйста, убедитесь, что эти гостевые дополнения правильно установлены в &gt. госте. Это не является ошибкой в Vagrant и обычно вызвано неисправным > боксом Vagrant. коробкой Vagrant. Для контекста, команда была выполнена следующим образом:

mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant

Ошибка, выданная командой, была следующей:

: Нет такого файла или каталога

Вот скриншот моей командной строки Windows:

А вот текстовая версия:

C:\vagrant\sitepoint-test-2017-02-05>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'ubuntu/trusty64'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'ubuntu/trusty64' is up to date...
==> default: A newer version of the box 'ubuntu/trusty64' is available! You currently
==> default: have version '20160602.0.0'. The latest is version '20170202.0.0'. Run
==> default: `vagrant box update` to update.
==> default: Setting the name of the VM: sitepoint-test-2017-02-05_default_1486399403587_55255
==> 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 (guest) => 2222 (host) (adapter 1)
==> 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: Remote connection disconnect. Retrying...
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant => C:/vagrant/sitepoint-test-2017-02-05
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:

: No such file or directory

Моя установка

OS: Microsoft Windows [Version 10.0.14393]
VirtualBox Version: 4.3.10 r93012
GuestAdditions Version: ???
Vagrant Version: 1.9.1 (Latest)
PuTTy Version: 0.67
PuTTYGen Version: 0.67

Плагины и расширения установлены

Vagrant:
- vagrant-share (1.1.6, system)
- vagrant-vbguest (0.13.0)

Что я уже пробовал

Этот пост показался мне наиболее перспективным.

К сожалению, ни одно из предложенных решений, ни одна из приведенных ссылок не помогли решить проблему. Я уже перепробовал кучу всего, но я не являюсь системным администратором (а именно такие навыки, как я полагаю, вам понадобятся для устранения этой проблемы). Особенно обеспокоило то, что многие из "решений" от 2013/2014 годов недавно были признаны неработающими. В этих решениях говорится о чем-то, связанном с неработающими симлинками, установкой плагинов типа vagrant-vbguest, а также о том, что дополнения vbox не соответствуют чему-то. Я не очень понимаю все это, но я старался изо всех сил. Вот то, что я уже попробовал, но пока не решил проблему:

  1. vagrant plugin install vagrant-vbguest. Vagrant показывает, что плагин установлен, но я получаю ту же ошибку при vagrant up.

  2. Список ссылок, которые я прочитал при исследовании этой проблемы и которые не дали рабочего решения.

Мои вопросы

  1. Я подозреваю, что проблема связана с VirtualBox, а не с Vagrant. Так ли это?

  2. Как я могу исправить это, чтобы продолжить работу с учебником?

  3. Похоже, что примерно с 2014 года на Stack Overflow резко сократилось количество вопросов по Vagrant. В чем причина этого? Может быть, Vagrant/VirtualBox больше не считается "лучшей практикой"? Есть ли лучшее решение, поэтому пользователи игнорируют вопросы по Vagrant?

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

Комментарии к вопросу (2)

Вы можете понизить версию VirtualBox или отредактировать строку в файле:

На моей установке это была строка 206 из:

C:\HashiCorp\Vagrant\embedded\gems\gems\vagrant-1.9.2\lib\vagrant\util\platform.rb

на моей хост-машине.

Я сделал это, и все отлично работает на Windows 10! Я хотел бы добавить то, что я сделал в строке 206:

Перед редактированием: "\\?\\" + path.gsub("/", "\\")

После редактирования: path.gsub("/", "\\")

Комментарии (5)
vagrant plugin install vagrant-vbguest

Это не't работа для меня, это, кажется, несовместимые с бродячими 1.9.2 для Android, последняя версия виртуальной коробке (5.1.16) и установленной версии 5.1.12 с последней версией бродячих 1.9.2 и усадьбу, и это работает для меня.

Комментарии (4)

Guest Additions несовместимы с версией VirtualBox. Автообновление VirtualBox Guest Additions решит, вероятно, связанную с этим проблему:

vagrant plugin install vagrant-vbguest

Я испытал эту проблему с этим стеком:

  • Windows 10
  • Oracle VirtualBox 5.1.16
  • Vagrant 1.9.2
  • config.vm.box = "hashicorp/precise64"
Комментарии (8)

Причин может быть несколько:

  1. Версия гостевого дополнения не соответствует версии VirtualBox, для этого вы можете обновить версию гостевого дополнения, выполнив vagrant plugin install vagrant-vbguest
  2. Вы столкнулись с ошибкой vagrant с NFS на Windows: она должна быть исправлена, поэтому, возможно, попробуйте обновить Vagrant и VirtualBox до последней версии.
  3. В этом выпуске на github https://github.com/fideloper/Vaprobash/issues/92 есть две вещи, которые вы можете проверить: используйте плагин winnfsd (https://github.com/winnfsd/vagrant-winnfsd) или попробуйте настроить монтирование по умолчанию без NFS.

У меня была та же проблема, и это было просто гостевое дополнение, которое не было обновлено ...

UDPATE : Ошибка в Vagrant с NFS на Windows (пункт 2) была исправлена в версии 5.1.18, снова появилась в версии 5.1.20 и снова исправлена в версии 5.2.

Комментарии (4)
Решение

Эта проблема решается в VirtualBox 5.1.18.

Комментарии (9)

Я использую бродячих 1.9.4 и VirtualBox 5.1.20. Никакого решения здесь мне помогли.

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

Vagrant.configure("2") do |config|
    config.vbguest.auto_update = false
    [...]
end

Это's больше в богатство временное решение, чем решение. Я до сих пор не'т действительно знаю, что фактический вопрос, но я предполагаю, что это связано с этим: https://www.virtualbox.org/ticket/16670

Комментарии (0)

Перейти на виртуальные коробки с 5.1.14 5.1.16 работает отлично.

Комментарии (0)

Существует также регрессии в VirtualBox 5.1.20

Бродяга вопрос: https://github.com/mitchellh/vagrant/issues/8502

Проблема в VirtualBox: https://www.virtualbox.org/ticket/16670#comment:4

Вот это место на VirtualBox 5.1.18, где он работал.

Комментарии (1)

Это ошибка в VBOX. Есть решение исправить.

Логин к VBOX guestos: паролем по умолчанию (бродяга/бродяга)

su
ln -sf /opt/VBoxGuestAdditions-5.1.20/lib/VBoxGuestAdditions/mount.vboxsf /sbin/mount.vboxsf
mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant

выключение

запустите cmd от локального компьютера командной строки:

vagrant up

Он будет работать.

Комментарии (0)

У меня аналогичная проблема, проверьте заголовок, если он's не совпадают, то выполнить следующую команду

В CentOS: судо ням обновление и усилитель; & судо ням-y установить ядро-заголовки ядра-девел

бродяга перезагрузить

это работает для меня.

Комментарии (0)

Резюме

Проблема с синхронизации/общие папки не работают внезапно оказывается, что модуль дополнений VirtualBox гость ядро не загружается.

Проблема не напрямую подключен к программе VirtualBox версия! Возможно, это было в прошлом, но следующее объяснение охватывает около 95% случаях эта проблема.


Объяснение

Это в основном связано с автоматическим обновлением ядра Linux, например, имея cronapt работает в виртуальной машине.

Если ядро получает новую версию, модуль формате HTML для гостевых дополнений не может быть перезапущен после перезагрузки виртуальной машины. Служба файлов из/etc/инит.Д/в VirtualBox-гость-utils и проверяет, если есть модуль ядра

/lib/modules/`uname -r`

папка vboxguest и vboxsf.

Давайте версию ядра при начальной установки гостевых дополнений быть: 1.2.3

Обновленное ядро имеет версию: 1.2.4

uname-Р результате 1.2.4, в то время как переходный модуль был установлен с версии ядра 1.2.3. Это приведет к тому, что VirtualBox услуги оценки, для того, чтобы прервать выполнение и сбоем с сообщением об ошибке, как команды modprobe ХХХХ не удалось.....

Решением # # ##

Что нам нужно сделать, это установить заголовки ядра с новой версией ядра, так что переходный модуль к программе VirtualBox дополнения гостевой ОС может быть автоматически перестроен с ними.

К счастью, есть мета-пакет, что позволяет нам иметь самые новые версии заголовки ядра установлены.

Вроде бы названы по-разному в разных редакциях ОС Linux. Вот небольшой список из них.

В Debian

`судо АПТ установить linux-headers и-или amd64

В Ubuntu

`судо АПТ установить Linux-заголовков-универсальная

В CentOS (непроверено)

Спасибо @Jayen Chondigara

судо ням-y установить ядро-заголовки ядра роз

Комментарии (0)