Ошибка 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 отлично работает.