VirtualBox: mount.vboxsf: монтаж не удался с ошибкой: нет такого устройства [закрыто]
Я использую VirtualBox с OS X в качестве хоста и CentOS на гостевой виртуальной машине.
в OS X я создал папку myfolder
, добавил его в качестве общей папки на виртуальную машину, включил виртуальную машину, в CentOS создал папку /home/user/myfolder
и введите:
sudo mount -t vboxsf myfolder /home/user/myfolder
и есть выход:
/sbin/mount.vboxsf: mounting failed with the error: No such device
что я делаю не так?
обновление:
Guest Additions
установлен.
21 ответ:
моя общая папка/буфер обмена перестал работать по какой-то причине (вероятно, из-за установки патча на моей виртуальной машине).
sudo mount -t vboxsf Shared_Folder ~/SF/
дало следующий результат:
VirtualBox: mount.vboxsf: mounting failed with the error: No such device
решение для меня было остановить vboxadd и сделать настройку после этого:
cd /opt/VBoxGuestAdditions-*/init sudo ./vboxadd setup
вы используете общие папки, поэтому вам нужно установить VirtualBox Гостевые Дополнения внутри виртуальной машины для поддержки этой функции.
залетный
если вы используете залетный (OS X:
brew cask install vagrant
), run:vagrant plugin install vagrant-vbguest vagrant vbguest
в случае, если это не удается, проверьте логи, например,
vagrant ssh -c "cat /var/log/vboxadd-install.log"
может быть, вам просто не хватает файлов заголовков ядра.
VM
внутри виртуальной машины, вы должны установить гостевой Дополнения, заголовки ядра и запустите службу и дважды проверьте, работает ли расширение ядра.
это зависит от гостевой операционной системы, поэтому вот краткие шаги:
установить ядро включает заголовки (требуется VBoxLinuxAdditions).
- RHEL:
sudo apt-get update && sudo apt-get install kernel-devel
- CentOS:
sudo yum update && sudo yum -y install kernel-headers kernel-devel
установка гостевых дополнений (это зависит от операционной системы система.)
Ubuntu:
sudo apt-get -y install dkms build-essential linux-headers-$(uname -r) virtualbox-guest-additions-iso
если вы не можете найти его, проверить
aptitude search virtualbox
.Debian:
sudo apt-get -y install build-essential module-assistant virtualbox-ose-guest-utils
если вы не можете найти его, проверить
dpkg -l | grep virtualbox
.вручную скачав iso file внутри VM (например
wget
) и установить его, например,
wget http://download.virtualbox.org/virtualbox/5.0.16/VBoxGuestAdditions_5.0.16.iso -P /tmp
sudo mount -o loop /tmp/VBoxGuestAdditions_5.0.16.iso /mnt
sudo sh -x /mnt/VBoxLinuxAdditions.run # --keep
доп. отладки:
cd ~/install && sh -x ./install.sh /mnt/VBoxLinuxAdditions.run
дважды проверьте, что расширения ядра и работает:
sudo modprobe vboxsf
запуск / перезапуск службы:
- вручную:
sudo /opt/VBoxGuestAdditions*/init/vboxadd setup
(добавитьsudo sh -x
to отладки)- Debian:
sudo /etc/init.d/vboxadd-service start
- Fedora:
sudo /etc/init.d/vboxdrv setup
- CentOS:
sudo service VBoxService start
построение главного модуля гостевых дополнений
если выше не работает, вот более сложные шаги для ее устранения. Это предполагает, что вы уже установили VBoxGuestAdditions (как показано выше).
наиболее распространенная причина, по которой установка общей папки не работает, может быть связана с созданием гостевых дополнений модуль, который не удалось. Если в
/var/log/vboxadd-install.log
у вас есть следующая ошибка:заголовки для текущего запущенного ядра не найдены.
это означает, что либо вы не устанавливали источники ядра, либо они не могут быть найдены.
если вы установили их уже как указано выше, выполните следующую команду:
$ sudo sh -x /opt/VBoxGuestAdditions-5.0.16/init/vboxadd setup 2>&1 | grep KERN + KERN_VER=2.6.32-573.18.1.el6.x86_64 + KERN_DIR=/lib/modules/2.6.32-573.18.1.el6.x86_64/build
так что в принципе
vboxadd
скрипт ожидает, что ваши источники ядра будут доступны по следующему адресу реж:ls -la /lib/modules/$(uname -r)/build
проверьте, существует ли каталог ядра (символическая ссылка указывает на существующую папку). Если это не так, пожалуйста, установите их в нужную папку (например, в
/usr/src/kernels
).так
vboxadd
скрипт может войти в исходный каталог ядра и запуститьmake kernelrelease
, получить значение и сравнить с текущей версией ядра.вот такая логика:
KERN_VER=`uname -r` KERN_DIR="/lib/modules/$KERN_VER/build" if [ -d "$KERN_DIR" ]; then KERN_REL=`make -sC $KERN_DIR --no-print-directory kernelrelease 2>/dev/null || true` if [ -z "$KERN_REL" -o "x$KERN_REL" = "x$KERN_VER" ]; then return 0 fi fi
если версия ядра не совпадает с источниками, возможно, Вам нужно обновить Linux ядро (в случае, если источники новее вашего ядра).
CentOS
пример исправления шагов для CentOS:
$ sudo yum update $ sudo yum install kernel-$(uname -r) kernel-devel kernel-headers # or: reinstall $ rpm -qf /lib/modules/$(uname -r)/build kernel-2.6.32-573.18.1.el6.x86_64 $ ls -la /lib/modules/$(uname -r)/build $ sudo reboot # and re-login $ sudo ln -sv /usr/src/kernels/$(uname -r) /lib/modules/$(uname -r)/build $ sudo /opt/VBoxGuestAdditions-*/init/vboxadd setup
кроме @Mats answer, я добавляю еще немного информации (это помогло мне на Debian 8).
моя общая папка/буфер обмена перестал работать по какой-то причине (вероятно, из-за установки патча на моей виртуальной машине).
sudo mount -t vboxsf Shared_Folder ~/SF/
дал мне следующий результат:
VirtualBox: mount.vboxsf: mounting failed with the error: No such device
решение для меня было остановить vboxadd и сделать настройку после этого:
cd /opt/VBoxGuestAdditions-*/init sudo ./vboxadd setup
На данный момент, если вы все еще получаете следующее ошибка:
нет такого устройства. Возможно, не удалось установить гостевые дополнения. Ошибка была зарегистрирована в
/var/log/vboxadd-install.log
вам нужно установить заголовки linux:
apt-get install linux-headers-$(uname -r)
затем вы можете установить гостевые дополнения:
sh /media/cdrom/VBoxLinuxAdditions.run --nox11
и перезагрузите Linux с помощью:
reboot
тогда вы сможете подключить общую папку!
mount -t vboxsf Shared_Folder ~/SF/
дополнительная информация (на французском языке), проверьте это страница.
Это было единственное решение, которое сработало для меня:
установить плагин Vagrant:бродяга-vbguest, который может поддерживать ваши гостевые дополнения VirtualBox в актуальном состоянии.
vagrant plugin install vagrant-vbguest
Источник:https://github.com/aidanns/vagrant-reload/issues/4#issuecomment-230134083
Это было решено:
yum install gcc kernel-devel make
обходной путь здесь:https://gist.github.com/larsar/1687725
общая папка ранее работала для меня, но внезапно она перестала работать (Virualbox-хост был Windows 7, гость был OpenSuSe)
modprobe -a vboxguest vboxsf vboxvideo
затем
mount -t vboxsf testsf /opt/tsf
(testsf
была папка на диске Windows C, которая была добавлена в общую папку Virtualbox - - - и/opt/tsf
- Это папка, в openSUSE
мой хозяин Windows10 моей гостевой виртуальной машине сборка Убунту с Vagrant. Это сработало для меня:
vagrant plugin install vagrant-winnfsd
Я запускаю VirtualBox 5.1.20, и у меня была аналогичная проблема. Вот url-адрес, где я нашел исправление, и исправление, которое я реализовал:
# https://dsin.wordpress.com/2016/08/17/ubuntu-wrong-fs-type-bad-option-bad-superblock/ if [ "5.1.20" == "${VBOXVER}" ]; then rm /sbin/mount.vboxsf ln -s /usr/lib/VBoxGuestAdditions/mount.vboxsf /sbin/mount.vboxsf fi
ссылка имела что-то похожее на /usr/lib/VBoxGuestAdditions/other/mount.vboxsf, а не то, что у меня в отрывок сценария.
для скрипта сборки я использую в vagrant для дополнений:
https://github.com/rburkholder/vagrant/blob/master/scripts/additions.sh
Кажется, a исправить в https://www.virtualbox.org/ticket/16670
у меня также была рабочая система, которая внезапно перестала работать с описанной ошибкой.
после фуртинга в моих/lib / модулях казалось бы, что
vboxvfs
модуль больше нет. Вместо этогоmodprobe vboxsf
было необходимое заклинание, чтобы все перезапустить.Не уверен, когда это изменение ocurred,но он поймал меня.
могут быть ошибки / неправильный подход в двух сценариях. Проверьте оба и выяснить это
сценарий 1 :
Как только вы запустите VBoxLinuxAdditions.выполнить или VBoxSolarisAdditions.pkg или VBoxWindowsAdditions.exe, проверьте, правильно ли установлены все модули.
1.1.а. В случае VBoxLinuxAdditions, если
построение ядра гостевых дополнений VirtualBox модули получает удалось,
проверьте файл журнала в /var / log/vboxadd-установить.журнал . Если из-за версия ядра обновите ядро и перезагрузите виртуальную машину. В случае fedora,
1.1.б. ядро обновления yum*
1.1.c.перезагрузка
1.2. Если ничего не выходит из строя, то все в порядке. У вас уже есть ожидаемая версия ядрасценарий 2:
Если vboxguestadditions установлен (проверьте наличие папки / opt /VBoxGuestAdditions -*.... * представляет версию) вам нужно запустить его перед установкой.
2.1. cd/opt/VBoxGuestAdditions-* / init && ./vboxadd start
В качестве параметров для команды монтирования необходимо указать идентификатор пользователя и идентификатор группы пользователя виртуальной машины.
2.2.a. получение uid и gid пользователя:
id-u
id-g
2.2.b. установка uid и gid в параметрах команды монтирования:
mount-t vboxsf-o uid=x, gid=x shared_folder_name guest_folder
была та же проблема с VirtualBox 5.0.16/rXXX
установлена последняя версия VirtualBox 5.0.18 и установлена последняя версия Vagrant 1.9.3, проблема пошла toodles.
я добавил как пользователь root
/etc/rc.d/rc.local /root/mount-vboxsf.sh
затем
chmod +x /etc/rc.d/rc.local
и пример скрипта
/root/mount-vboxsf.sh
(установите свои собственные параметры uid и gid)modprobe -a vboxguest vboxsf vboxvideo mount -t vboxsf NAME_SHARED_DIRECTORY /media/sf_NAME_SHARED_DIRECTORY -o rw,uid=0,gid=0
вы должны добавить
chmod + /root/mount-vboxsf.sh
У меня аналогичная проблема, проверьте заголовок, если он не соответствует, а затем запустите команду ниже
CentOS: sudo yum update && sudo yum-y install kernel-headers kernel-devel
если вы на Debian:
1) Удалите все установленные пакеты через Virtualbox Guest Additions ISO file:
sh /media/cdrom/VBoxLinuxAdditions.run uninstall
2) Установите пакеты Virtualbox:
apt-get install build-essential module-assistant virtualbox-guest-dkms virtualbox-guest-utils
обратите внимание, что даже с
modprobe vboxsf
ничего не возвращая (так что модуль правильно загружен), тоvboxsf.so
вызовет исполняемый файл с именемmount.vboxsf
, предусмотренногоvirtualbox-guest-utils
. Игнорирование этого будет препятствовать вам понять истинную причину ошибка.
strace mount /your-directory
была большая помощь (нет такого файла или каталога на/sbin/mount.vboxsf
).
The решение для меня обновить гостевые дополнения
(нажмите устройства - > вставить гостевые дополнения CD image)
для меня, на mac, оказалось, что у меня был старый образ VirtualBox, хранящийся на моей машине, который не имел метаданных, поэтому он не обновлялся до последней версии.
в этом старом изображении была установлена более старая версия плагина vbguest, с которой новый плагин vbguest на моей машине не мог работать.
поэтому, чтобы исправить это, я просто удалил изображение, на котором был основан мой бродяга, а затем Vagrant загрузил более новую версию, и она работала нормально.
# Remove an old version of the virtual box image that my vagrant was using $ vagrant box remove centos/7
вы можете узнать, какие коробки вы кэшировали на вашем компьютере, запустив:
$ vagrant box list
Я также обновил свой плагин vbguest в моих предыдущих попытках заставить это работать, используя следующий процесс, но я не думаю, что это помогло. К вашему сведению !
# Get rid of old plugins vagrant plugin expunge # Globally install the latest version of the vbguest plugin` vagrant plugin install vagrant-vbguest
ниже две команды работает для меня.
vagrant ssh sudo mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant
хорошо, все упускают основной факт.
mkdir /test
- делает подкаталог в текущем каталоге.
sudo mkdir /test
- сделать каталог в корне.так что если ваш общий имя директории
shared
и вы делаете следующее:mkdir /test sudo mount -t vboxsf shared /test
он генерирует эту ошибку:
sbin/mount.vboxsf: mounting failed with the error: No such file or directory
потому что каталог находится в неположенном месте! Да вот что говорит эта ошибка. Ошибка не говорит перезагрузить гостевые параметры VBOX.
но если вы сделаете это:
sudo mkdir ~/test sudo mount -t vboxsf shared ~/test
затем он отлично работает.
меня действительно поражает, сколько людей предлагают перезагрузить гостевые дополнения Vbox, чтобы решить эту ошибку или написать сложную программу для решения каталога, созданного в неправильном месте.