Ошибка Vagrant "Не удалось установить папки в гостевой системе Linux после остановки или перезагрузки

Я пытаюсь использовать боксерскую коробку у кого-то другого, и он отлично работает, когда я впервые запускаю его, но после того, как я остановил его и перезапустил его с помощью vagrant halt и vagrant up, или vagrant reload, я получите следующее сообщение об ошибке:

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

The error output from the last command was:

/sbin/mount.vboxsf: mounting failed with the error: No such device

Прямо сейчас, поиск этого сообщения об ошибке вызывает много людей, имеющих проблемы с ошибкой Virtual Box 4.3.10, но это не проблема, с которой я сталкиваюсь.

Ответ 1

Оказывается, обновление ядра Linux приведет к тому, что гостевые дополнения Virtual Box перестанут работать до тех пор, пока они не будут восстановлены, выполнив следующую команду в VM

sudo /etc/init.d/vboxadd setup

Я обновил ядро, не задумываясь об этом, когда я запускал yum update (аналогично apt-get upgrade) для получения обновлений для другого программного обеспечения.

В качестве альтернативы, если вы установите пакет dkms, как описано здесь, тогда модуль ядра должен автоматически обновляться при обновлении ядра.

Ответ 2

Чтобы исправить эту проблему, необходимо установить дополнение виртуального блока. Например, я использую Centos 7. Сначала загрузите centos 7 минимально, а затем установите гостевую добавку, пожалуйста, просмотрите все шаги ниже

  • Скачать centos 7

    vagrant init centos/7

    бродяга вверх

    vagrant ssh

  • Установить дополнение для виртуальной коробки Обновление

    yum

    перезагрузка

    бродяга ssh

    yum update kernel

    перезагрузка

    бродяга ssh

    yum groupinstall "Средства разработки"

    yum install kernel-devel

    yum install wget

    wget http://download.virtualbox.org/virtualbox/5.0.2/VBoxGuestAdditions_5.0.2.iso

    sudo mkdir/media/VBoxGuestAdditions

    sudo mount -o loop, ro VBoxGuestAdditions_5.0.2.iso/media/VBoxGuestAdditions

    sudo sh/media/VBoxGuestAdditions/VBoxLinuxAdditions.run rm VBoxGuestAdditions_5.0.2.iso

    sudo umount/media/VBoxGuestAdditions

    sudo rmdir/media/VBoxGuestAdditions

    Настройка sudo/etc/init.d/vboxadd

    sudo chkconfig --add vboxadd

    sudo chkconfig vboxadd on

    Выход

  • Пакет new box

    брандмауэр-пакет -base my-virtual-machine

Ответ 3

Ударьте ту же проблему, но с другим исправлением: у меня уже установлены dkms (virtualbox-guest-dkms в Debian Jessie).

Дело в том, что модуль "vboxsf" не был загружен автоматически, а запуск mount shared_directory не работал (No such file or directory ошибка).

Но после запуска modprobe vboxsf установка была прекрасной.

Итак, я отредактировал /etc/modules и добавил vboxsf в новой строке: проблема решена!

Примечание: если при запуске modprobe vboxsf заканчивается ошибка, у вас не установлен модуль vboxsf, поэтому вы должны сначала установить модуль DKMS.

Ответ 4

Сразу после того, как я получил ту же ошибку, я сделал следующее:

$ vagrant ssh
$ sudo apt-get update
$ exit

затем установлен vagrant-vbguest

$ vagrant plugin install vagrant-vbguest

затем

$ vagrant halt
$ vagrant up

и это сработало!

Глядя на журналы, кажется, что vagrant-vbguest сделал некоторую очистку с точки зрения дополнений vbguest на гостевой (VM).

[default] GuestAdditions versions on your host (4.3.38) and guest (4.3.10) do not match.
 * Stopping VirtualBox Additions
   ...done.
rmmod: ERROR: Module vboxsf is not currently loaded
rmmod: ERROR: Module vboxguest is not currently loaded
Reading package lists...
Building dependency tree...
Reading state information...
The following packages will be REMOVED:
  virtualbox-guest-dkms* virtualbox-guest-utils* virtualbox-guest-x11*
0 upgraded, 0 newly installed, 3 to remove and 12 not upgraded.
After this operation, 12.1 MB disk space will be freed.
(Reading database ... 113238 files and directories currently installed.)
Removing virtualbox-guest-dkms (4.3.10-dfsg-1ubuntu5) ...
Error! Could not locate dkms.conf file.
File:  does not exist.
Removing virtualbox-guest-x11 (4.3.10-dfsg-1ubuntu5) ...
Purging configuration files for virtualbox-guest-x11 (4.3.10-dfsg-1ubuntu5) ...
Removing virtualbox-guest-utils (4.3.10-dfsg-1ubuntu5) ...
Purging configuration files for virtualbox-guest-utils (4.3.10-dfsg-1ubuntu5) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Processing triggers for libc-bin (2.19-0ubuntu6.9) ...
Reading package lists...
Building dependency tree...
Reading state information...
dkms is already the newest version.
linux-headers-3.13.0-91-generic is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 12 not upgraded.
Copy iso file /Applications/VirtualBox.app/Contents/MacOS/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.38 - guest version is 4.3.10
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.3.38 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.

P.S. Я нахожусь в OS X, используя следующие версии программного обеспечения:

$ vagrant plugin list
solve (0.8.2)
  - Version Constraint: 0.8.2
vagrant-berkshelf (4.1.0)
vagrant-hostmanager (1.5.0)
  - Version Constraint: 1.5.0
vagrant-hostsupdater (1.0.2)
vagrant-omnibus (1.3.1)
  - Version Constraint: 1.3.1
vagrant-proxyconf (1.2.0)
  - Version Constraint: 1.2.0
vagrant-share (1.1.5, system)
vagrant-vbguest (0.12.0)

$ VBoxManage --version
4.3.38r106717

$ vagrant --version
Vagrant 1.8.4

Надеюсь, что это поможет.

Ответ 5

Я столкнулся с такой же ошибкой, используя Vagrant 1.8.1, VirtualBox 5.0.18, шеф-повара 12.10.10 MacOSX El Capitan и гостевой CentOS7. Я попытался установить kernel-devel внутри гостя, установив последние гостевые адреса и обновив yum, но ни один из них не работал у меня, поэтому я изменил тип монтирования для "nfs" в моих настраиваемых синхронизируемых папках и временной папке шеф-повара, и это сработало

В Vagrantfile мои синхронизированные папки:

config.vm.synced_folder ".", "/vagrant", type: "nfs"

и моя конфигурация chef_solo:

chef.cookbooks_path = ["chef/cookbooks/"]
chef.synced_folder_type = "nfs"

Ответ 6

Просто установите плагин Vagrant vagrant-vbguest, он может обновить ваши гостевые дополнения VirtualBox.

vagrant plugin install vagrant-vbguest

Ответ 7

VirtualBox 5.18 устраняет эту проблему. Он существует в 5.16 и не может быть зафиксирован никакими обычными способами. Новейшая версия 5.18 отлично работает.