Ошибка монтирования общих папок VirtualBox в гостевой системе Ubuntu


77

У меня Ubuntu 10 в качестве гостевой ОС на компьютере с Windows 7. Я пытался настроить общие ресурсы через VirtualBox, но ничего не работает. Сначала я создаю общий ресурс в VirtualBox и указываю на папку Windows. Затем я пытаюсь смонтировать диск в Linux, но продолжаю получать

/sbin/mount.vboxsf: монтирование не удалось с ошибкой: ошибка протокола

Я прочитал так много решений этого, но ни один, кажется, не работает. Я пытался:

  • Использование синтаксиса mount.vboxsf
  • Переустановка дополнений VBox
  • Rebooting
  • Включение и попытка от имени учетной записи root

Я сделал акцию под названием «Тест» в общих папках VBox. Затем я сделал каталог в Ubuntu с именем «test2». Затем я попытался выполнить эту команду:

sudo mount -t vboxsf Test / mnt / test2

Есть другие идеи?

Ответы:


90

Для использования функциональности общих папок необходимо выполнить несколько предварительных условий :

  • Убедитесь, что гостевые дополнения правильно установлены на гостевой ОС.
  • Пользователи в гостевой Ubuntu должны быть в группе, vboxsfчтобы иметь доступ к общим ресурсам.
  • Определите каталог на хосте, который будет использоваться на виртуальной машине, используя диалог настроек Virtual Box.

В зависимости от хоста или гостевой ОС может потребоваться следующее:

  • Не делитесь личными папками, такими как /home/usernameилиMy Documents
  • Избегайте специальных символов или пустых мест в пути к общей папке, особенно если хост или ВМ - машина Windows
  • Используйте разные имена для общего ресурса и точки монтирования
  • Создайте точку монтирования на гостевой ОС (лучше всего в вашей домашней директории).

Тестирование функциональности общих папок может быть выполнено путем создания общего каталога на хосте (например C:\myshare), определите его как общую папку для вашей гостевой системы в настройках Virtual Box (например share), создайте точку монтирования в вашей гостевой ОС (например mkdir /home/username/host) и смонтируйте это в гостевой ОС командой:

sudo mount -t vboxsf -o uid=1000,gid=1000 share /home/username/host

где опция -o гарантирует, что у вас будет доступ к монтированию (которое в противном случае будет принадлежать пользователю root).

Для получения дополнительной информации об общих папках см. Также руководство пользователя Virtual Box .

Файлы или каталоги могут также передаваться по сети с помощью Samba на хосте и госте.


4
Я считаю, что я выполнил все эти требования, но все еще получаю ошибку. Есть ли способ, которым я могу диагностировать, в чем проблема?
Сказ

1
Не до уровня строкового литерала, но моя доля C: \ test вместо C: \ myshare, это определено в VBox 4.0.4. Я создал папку в / home / [myusername] / test2 и папку в / mnt / test2 и запустил команду точно в этих двух папках, и обе они возвращают одну и ту же ошибку.
сказ

1
Спасибо за вашу помощь! Я не понимал, что слова «тест» и «тест2» будут рассматриваться как использующие одно и то же имя. Это решило проблему!
Сказ

2
Для «общего ресурса» я бы по глупости использовал sf_ [sharename], так как я мог видеть, что он монтируется в / media / с таким именем, и предполагал, что ему понадобится локальное имя ubuntu, а не собственное имя VBox. Однако я удалил префикс 'sf_', и это решило проблему.
Astravagrant

1
@MichaelScheper это только рекомендации - если у вас все работает, все в порядке.
Таккат

15

Я также встретил эту проблему. Я обнаружил, что общая папка уже смонтирована в /media/sf_share.

Я пытался удалить /media/sf_share, но не смог.

Поэтому я удалил общую папку «share» в своем домашнем каталоге.

$ rm -r ~/share

А затем переключитесь на пользователя root следующим образом:

$ sudo -i

Создайте softlink / ярлык для папки / media / sf_share, которой владеет пользователь root, измените владельца softlink с помощью команды chown. Выход от пользователя root до обычного пользователя

# ln -s /media/sf_share /home/username/share
# chown username.username /home/username/share
# exit
logout

$ chmod 777 ~/share

Вы можете увидеть файлы в Windows через общую папку. И имя пользователя должно быть членом группы vboxsf.


Спасибо ! Вы были правы ... уже смонтированы в / media / sf_sharename
Laurent

1
Используя CentOS 7, я также обнаружил, что мой каталог смонтирован в media/sf_sharename. Создание символической ссылки на этот каталог может показаться возможным вариантом, но это сильно отличается от объявленной / документированной процедуры на сайте VirtualBox. Там должно быть правильное решение этого!?!?
верховая лошадь

11

Вот что сработало у меня без проблем

Я понял, что на самом деле мое userимя не было в группе vboxsf . Следующие две команды помогут получить информацию о группе:

grep "vboxsf" /etc/group    
grep "saurav" /etc/group

Поэтому я добавил saurav(меня) в группу vboxsf, используя следующую команду:

sudo usermod -a -G vboxsf saurav 

Затем перезапустил виртуальную коробку, а затем .. Выскочил с моего места ..: D: D Все работало нормально без каких-либо проблем.

Пожалуйста, прокомментируйте, если у кого-то все еще есть проблемы ..


2
Это сработало для меня, спасибо. Существует только тип: должен быть sudo usermod -a -G vboxsf saurav(сначала группа, затем пользователь).
user673592

Да .. Введено неверно .. :) Спасибо за указание. Отредактировано сейчас ..
Саурав Кумар

1
Вам не нужно перезапускать VB, чтобы получить новую группу. $ su - saurav сделает свое дело.
Стивен Бостон

2

Я также много боролся с монтированием и перепробовал все, что придумал в interwebz, но я наконец нашел очень странный обходной путь для его решения! Мой гость - Ubuntu 13, а мой хост - Windows 7.

Перейдите в папку media и оттуда наберите user@os:/media$ sudo mount -t vboxsf share /home/username/folder

Да, вот и все. Но я не понимаю, почему это работает, только если это сделано из папки мультимедиа. Если кто-то знает, пожалуйста, объясните нам ниже. Благодарю.

PS Редактирование моего /etc/rc.localдля автоматического монтирования при запуске не работает для меня.


1
/etc/rc.local никогда не будет работать, так как это делается до того, как сеть заработает.
Брайам

2
Привет, Брайам! Приятно знать. К сожалению, я читал на бесчисленных сайтах, которые люди рекомендуют редактировать /etc/rc.local для автоматического монтирования. Знаете ли вы, как правильно установить его при запуске? Благодарю.
BringBackCommodore64

Я также считаю, что это работает только из / СМИ. Очень странно. Я просто добавил это к моему .profile: pushd media && sudo mount /media/<theshare> && popd.
Мэтт Грир

1

С VirtualBox 5.1.20, работающим на Windows 10, и Ubuntu 16.04 в качестве гостевой ОС с установленной GuestAdditions 5.1.20, я не смог смонтировать общие папки из командной строки. Команды монтирования завершились неудачно с упоминаниями об ошибке протокола и sf_read_super_aux err = -22.

В конце концов я обнаружил https://www.virtualbox.org/ticket/16670 «символическая ссылка mount.vboxsf не работает». Я использовал один из обходных путей, чтобы исправить символическую ссылку для mount.vboxsf, и все заработало. Мой подход должен был сделать:

mv /sbin/mount.vboxsf /sbin/mount.vboxsf-orig
ln -s /opt/VBoxGuestAdditions-5.1.20/lib/VBoxGuestAdditions/mount.vboxsf /sbin/mount.vboxsf

Команды должны выполняться пользователем root. Итак, поскольку это была Ubuntu, я добавил «sudo» в начале каждой строки, чтобы выполнить команду от имени пользователя root. У других разновидностей Linux есть другие способы сделать это.

Кроме того, в 2014 году в билете виртуальной коробки № 12879 «Не удалось подключить общие папки с гостевыми дополнениями 4.3.10» была обнаружена аналогичная проблема символической ссылки, которая была устранена в следующем месяце.

2017-04-27


@ Дункан: хорошая мысль. Название заявки описывает проблему, но я отредактировал, чтобы показать решение, которое я использовал.
J Cumming

В журнале изменений для виртуальной коробки v5.1.22 на virtualbox.org/wiki/Changelog#v22 говорится, что
J Cumming

В журнале изменений для виртуальной коробки v5.1.22, выпущенном 2017-04-28 ( virtualbox.org/wiki/Changelog#v22 ), говорится, что эта ошибка / тикет # 16670 исправлена. Я взволнован!
J Cumming

Не уверен, почему это было понижено, но это помогло мне с моими проблемами, используя Vbox 5.122
qodeninja

1

Для меня проблема была в том, что я был гусем, и я забыл, что я удалил запись из своего списка общих папок в VirtualBox («Машина» → «Настройки» → «Общие папки»).

Я просто добавляю это сюда, на случай, если кто-нибудь еще будет введен в заблуждение подобным образом «Ошибка протокола».

: honk: 😉


1

Перепробовал все вышесказанное и у меня ничего не получалось. В последнее время я создал новую временную папку «Shared» с включенными «Make Permanent» и «Auto Mount». А затем запустите команду

sudo mount -t vboxsf -o uid=1000,gid=1000 Shared /mnt/sharedvm

Это сработало для меня. На этот раз ошибок нет.


0

Моя общая папка работала, а после перезагрузки хоста - нет.

Сменив имя общей папки с Shared на Shared2, это сработало.

config.vm.synced_folder "/Users/username/Dropbox/Shared", "/Shared2"

Понятия не имею, что случилось и почему ни как исправить. Система без глобального изменяемого состояния, такая как Nix, имеет смысл.


0

Лично я столкнулся с тем же сообщением об ошибке, и проблема была связана с тем, что я сделал опечатку, связанную с папкой, расположенной на хост-машине, и которую я установил как общую папку изнутри виртуальной машины благодаря добавлению гостя.

Итак, правильная команда:

sudo mount -t vboxsf -o uid=$UID,gid=$(id -g) shared_folder_located_in_host_machine path_to_mounting_folder_inside_the_virtual_machine

Это исправило сообщение об ошибке.


0

Для меня это была неправильная версия гостевого дополнения.

Я перенес всю свою виртуальную машину с одного ноутбука (на котором работала VirtualBox 5.8 / что-то) на другой ноутбук с VirtualBox 6.0. Все работало, кроме монтирования общей папки.

Я просто запустил VM, нажал Devices -> Insert Guest additions CD image...и следовал инструкциям. Он немного поинтересовался наличием старой версии гостевых дополнений, но затем удалил ее и установил новую со второй попытки. Перезагрузка и работает.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.