Ошибка 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 и модуль ядра. Пожалуйста, убедитесь, что эти гостевые дополнения правильно установлены в >. госте. Это не является ошибкой в 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 не соответствуют чему-то. Я не очень понимаю все это, но я старался изо всех сил. Вот то, что я уже попробовал, но пока не решил проблему:
-
vagrant plugin install vagrant-vbguest
. Vagrant показывает, что плагин установлен, но я получаю ту же ошибку приvagrant up
. -
Список ссылок, которые я прочитал при исследовании этой проблемы и которые не дали рабочего решения.
- https://stackoverflow.com/questions/26446757/vagrant-unable-to-mount-in-linux-guest-with-virtualbox-guest-additions-on-window
- https://stackoverflow.com/questions/41806920/vagrant-how-can-i-mount-the-virtualbox-shared-folder-vboxsf-not-available
- https://github.com/mitchellh/vagrant/issues/3341#issuecomment-144271026
- https://www.virtualbox.org/ticket/12879 (На этот билет VirtualBox ссылаются плакаты в некоторых других перечисленных ссылках. К сожалению, этот билет не устраняет проблему. Он не исправлен и все еще сломан ... ИЛИ ... возможно, этот билет связан, но немного отличается от проблемы, с которой я и другие все еще сталкиваются).
- https://gist.github.com/fernandoaleman/5083680
- https://stackoverflow.com/questions/34405436/vagrant-shared-folders-do-not-mount-windows-7-vagrant-1-7-4-ubuntu-12-04-p
Мои вопросы
-
Я подозреваю, что проблема связана с VirtualBox, а не с Vagrant. Так ли это?
-
Как я могу исправить это, чтобы продолжить работу с учебником?
-
Похоже, что примерно с 2014 года на Stack Overflow резко сократилось количество вопросов по Vagrant. В чем причина этого? Может быть, Vagrant/VirtualBox больше не считается "лучшей практикой"? Есть ли лучшее решение, поэтому пользователи игнорируют вопросы по Vagrant?
Повторюсь, я не системный администратор, но я технически подкован и могу следовать техническим указаниям.
Я сделал это, и все отлично работает на Windows 10! Я хотел бы добавить то, что я сделал в строке 206:
Перед редактированием: "\\?\\" + path.gsub("/", "\\")
После редактирования: path.gsub("/", "\\")
Это не't работа для меня, это, кажется, несовместимые с бродячими 1.9.2 для Android, последняя версия виртуальной коробке (5.1.16) и установленной версии 5.1.12 с последней версией бродячих 1.9.2 и усадьбу, и это работает для меня.
Guest Additions несовместимы с версией VirtualBox. Автообновление VirtualBox Guest Additions решит, вероятно, связанную с этим проблему:
Я испытал эту проблему с этим стеком:
Причин может быть несколько:
vagrant plugin install vagrant-vbguest
У меня была та же проблема, и это было просто гостевое дополнение, которое не было обновлено ...
UDPATE : Ошибка в Vagrant с NFS на Windows (пункт 2) была исправлена в версии 5.1.18, снова появилась в версии 5.1.20 и снова исправлена в версии 5.2.
Эта проблема решается в VirtualBox 5.1.18.
Я использую бродячих 1.9.4 и VirtualBox 5.1.20. Никакого решения здесь мне помогли.
Я, наконец, получил вокруг проблемы путем отключения автоматического обновления для гостевых дополнений:
Это's больше в богатство временное решение, чем решение. Я до сих пор не'т действительно знаю, что фактический вопрос, но я предполагаю, что это связано с этим: https://www.virtualbox.org/ticket/16670
Перейти на виртуальные коробки с 5.1.14 5.1.16 работает отлично.
Существует также регрессии в VirtualBox 5.1.20
Бродяга вопрос: https://github.com/mitchellh/vagrant/issues/8502
Проблема в VirtualBox: https://www.virtualbox.org/ticket/16670#comment:4
Вот это место на VirtualBox 5.1.18, где он работал.
Это ошибка в VBOX. Есть решение исправить.
Логин к VBOX guestos: паролем по умолчанию (бродяга/бродяга)
выключение
запустите cmd от локального компьютера командной строки:
Он будет работать.
У меня аналогичная проблема, проверьте заголовок, если он's не совпадают, то выполнить следующую команду
В CentOS: судо ням обновление и усилитель; & судо ням-y установить ядро-заголовки ядра-девел
бродяга перезагрузить
это работает для меня.
Резюме
Проблема с синхронизации/общие папки не работают внезапно оказывается, что модуль дополнений VirtualBox гость ядро не загружается.
Проблема не напрямую подключен к программе VirtualBox версия! Возможно, это было в прошлом, но следующее объяснение охватывает около 95% случаях эта проблема.
Объяснение
Это в основном связано с автоматическим обновлением ядра Linux, например, имея
cronapt
работает в виртуальной машине.Если ядро получает новую версию, модуль формате HTML для гостевых дополнений не может быть перезапущен после перезагрузки виртуальной машины. Служба файлов из/etc/инит.Д/в VirtualBox-гость-utils и проверяет, если есть модуль ядра
папка
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 установить ядро-заголовки ядра роз