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 /tmpsudo 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 -xto отладки)- 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 uninstall2) Установите пакеты 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, чтобы решить эту ошибку или написать сложную программу для решения каталога, созданного в неправильном месте.