Как смонтировать общую папку VirtualBox? [закрыто]


58

Какова процедура монтирования общей папки VirtualBox в Linux?

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

sudo mount -t vboxsf share /home/toto

Это вопрос? Пожалуйста, перефразируйте его, чтобы он превратился в вопрос, опубликуйте свой собственный ответ, и я буду более чем рад удалить отрицательное голосование.
Ледяной воды

1
Отредактировано для соответствия стандартам Q & A.

Просьба обновить вопрос, что вы пробовали и какую ошибку вы получаете

Отредактировано, чтобы показать нерабочую команду. Распространенная ошибка, protocol errorкак указано в вопросе.

Я получаю эту ошибку, любое решение этой "mount: неизвестный тип файловой системы 'vboxsf'"
sandip divekar

Ответы:


111

Хорошо, это немного смущало меня, но я наконец понял, что происходит. Поэтому я решил отдать свои 2 цента в надежде, что это будет более понятным для других, и если я забуду когда-нибудь в будущем:).

Я не использовал имя общего ресурса, который я создал в виртуальной машине , вместо этого я использовал share или vb_share, когда имя моего ресурса было wd, поэтому это на минуту меня смутило.

Сначала добавьте ваш общий каталог в VM Box: введите описание изображения здесь

Какое бы имя вы ни указали здесь, оно будет тем именем, которое вам нужно будет использовать при монтировании в гостевой ОС vm. то есть я назвал мой "wd" для моего западного цифрового паспорта.

Далее в операционной системе guset создайте каталог для вашего монтирования, желательно в вашем домашнем каталоге.

mkdir share

Затем откройте терминал и скопируйте и вставьте следующее или введите его. Вы можете включить общий буфер обмена в Device-> Shared Clipboard-> Bidirectional.

sudo mount -t vboxsf wd ~/share/

Теперь вы сможете копировать файлы между ОС, используя папку «share» в вашем домашнем каталоге.

Надеюсь это поможет!


1
Я потратил несколько часов, чтобы понять, как я могу получить файлы от Гостя. Оказалось, что «sharename» (из официальной документации VBox) в команде «mount» - это просто NAME, указанное в виртуальном поле Shared Folders в первом столбце. Отличная работа, ты мой герой.
zen11625

2
отличный ответ, +1 за скриншот ... Это монтирует общий ресурс как root, как я полагаю. См. [Документы] ( forums.virtualbox.org/viewtopic.php?t=15868 ) о том, как смонтировать его как своего текущего пользователя, например:sudo mount -t vboxsf -o rw,uid=1000,gid=1000 share ~/host
timbrown

@user Как мне сделать автоматическое монтирование при загрузке?

Если вы не знаете свой идентификатор пользователя, вы можете использовать переменные. в этом случае команда насыпи становитсяsudo mount -t vboxsf -o uid=$UID,gid=$(id -g) wd ~/share

28

Для VirtualBox с гостем Linux, это шаги для монтирования общей папки:

  1. Используйте приложение хоста VirtualBox, VirtualBox Manager, чтобы указать папки хоста для совместного использования.

  2. Убедитесь, что гостевые дополнения VirtualBox установлены в гостевой VirtualBox.

  3. В гостевой системе Linux команда mount должна показать строку, в которой смонтирован общий ресурс. На это указывает type vboxsf. Проблема заключается в том, что точка монтирования может находиться не там, где нужно, а разрешения - только root. Расположение по умолчанию - /media/sf_.

  4. Вы можете получить доступ к общему ресурсу, сделав пользователя или идентификатор группы 1000членом группы vboxsf. Это делается путем изменения vboxsfстроки в /etc/groupфайле. Может потребоваться перезагрузка.

  5. Вы можете изменить местоположение папки, используя команду VBoxControl. Команда устанавливается при установке гостевых дополнений. Может потребоваться перезагрузка. Например, чтобы изменить точку монтирования из /media/sf_...к /home/toto/sf_...используйте следующую команду , чтобы установить VirtualBox общей папку guestproperty:

sudo VBoxControl guestproperty set / VirtualBox / GuestAdd / SharedFolders / MountDir / home / toto /

Чтобы подтвердить изменение, используйте get:

sudo VBoxControl guestproperty get /VirtualBox/GuestAdd/SharedFolders/MountDir

Рекомендации:

Информация об общей папке VirtualBox

Информация о гостевой собственности VirtualBox


4
Новая проблема, с Vbox 4.3.10 ссылка не работает, проверьте, чтобы проверить (ls -l) /sbin/mount.vboxsf Если эта цель не существует, каталог должен быть повторно отображен: sudo ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions/mount.vboxsf /sbin/mount.vboxsf
ppostma1

4
Чтобы добавить пользователя myuser в группу vboxsf, вы можете использовать: sudo adduser myuser vboxsf

VirtualBox 4.3.14 исправляет проблемы установки гостевых дополнений для RHEL 7 и CentOS 7. Установите гостевые дополнения, используя: if-not-true-then-false.com/2010/…

Я нахожусь на VirtualBox 4.3.20 на Windows 8.1. У меня Ubuntu установлен в ВМ. Я не вижу type vboxsfпри запуске mountкоманды, хотя у меня установлен гостевой пакет! пожалуйста, помогите
J86

20

При встрече:

mount: Protocol error

после попытки поделиться папками в VirtualBox, например:

$ sudo mount -o uid=1000,gid=1000 -t vboxsf D_DRIVE ~/host

это наконец работает для меня:

$ sudo apt-get install virtualbox-guest-dkms

(Моя настройка: хост Windows 7, гости: Ubuntu 12.04, 13.10, 14.04; в настоящее время работает VBox 4.3.10 r93012)


5

Установите виртуальную коробку дополнений на гостевой ОС. Затем выключите гостевую ОС. Откройте настройки гостя в виртуальной коробке. Затем добавьте общую папку и сохраните настройки. Затем запустите гостевую ОС и для Ubuntu введите команду ниже. Добавляет текущего пользователя в группу vboxsf.

sudo adduser $ USER vboxsf

перезагрузите гостевую ОС и перейдите в / media / для доступа к общей папке.


sudo adduser не работает для меня, я добавляю использовать "sudo usermod -a -G vboxsf myUser", и это работает. Спасибо
Алекс

1
Да, вот чего не хватало: sudo adduser $ USER vboxsf Теперь это работает :-)

3

В гостевой системе VirtualBox для Linux или Mac OS X после установки гостевых дополнений VirtualBox вы можете обнаружить доступные общие папки VirtualBox с помощью следующей команды:

sudo  VBoxControl  sharedfolder  list

Если ваша домашняя папка внутри вашего гостя содержит папки с тем же именем, что и общие папки VirtualBox, вы можете подключить их автоматически с помощью следующего сценария оболочки:

#!/bin/sh
#-----------------------------------------------------------------------------
# Discover VirtualBox shared folders and mount them if it makes sense
#-----------------------------------------------------------------------------

if  !  type  VBoxControl  > /dev/null;  then
  echo  'VirtualBox Guest Additions NOT found'  > /dev/stderr
  exit 1
fi

MY_UID="$(id -u)"
MY_GID="$(id -g)"

( set -x;  sudo  VBoxControl  sharedfolder  list; )  |  \
grep      '^ *[0-9][0-9]* *- *'                      |  \
sed  -e 's/^ *[0-9][0-9]* *- *//'                    |  \
while  read  SHARED_FOLDER
do
  MOUNT_POINT="$HOME/$SHARED_FOLDER"
  if  [ -d "$MOUNT_POINT" ];  then
    MOUNTED="$(mount  |  grep  "$MOUNT_POINT")"
    if  [ "$MOUNTED" ];  then
      echo  "Already mounted :  $MOUNTED"
    else
      (
        set -x
        sudo  mount  -t vboxsf  -o "nosuid,uid=$MY_UID,gid=$MY_GID"  "$SHARED_FOLDER"  "$MOUNT_POINT"
      )
    fi
  fi
done

1

Когда вы получаете следующую ошибку: /sbin/mount.vboxsf: монтирование не удалось с ошибкой: Ошибка протокола

К сожалению, это означает, что вы используете имя общего ресурса по умолчанию, или имя общего каталога хоста совпадает с именем смонтированного гостевого общего ресурса. В данном случае это «доля». Просто создайте другую общую папку, то есть «vb_share», а затем просто выполните:

mount -t vboxsf vb_share / home / <пользователь> / host


1
  • Установите Vbox Additions (файл ISO или скачайте его)
  • Создайте каталог с любым именем в двух системах ( mkdir shareнапример)
  • подключиться с помощью «общих папок VBox» к общей папке в исходном sys
  • используйте команду для подключения вашей папки:
    sudo mount -t vboxsf name_of_folder_linked ~/name_of_folder_guest/

0

Настройка: VirtualBox 4.3.26, хост Win 7 SP1, гость Debian jessie 8.0 (стабильный).

В VirtualBox Manager выберите « Настройки общих папок» в раскрывающемся меню « Устройства» .

В появившемся всплывающем окне выберите Папки машин в списке папок, а затем нажмите кнопку «Добавить определение новой общей папки» (синяя папка с зеленым значком «+» справа от списка папок ).

В появившейся всплывающей форме « Добавить общий доступ» нажмите кнопку со стрелкой вниз в поле « Путь к папке» и выберите « Другое» . Обзор папки появится всплывающее окно.

(В моем случае я только что добавил еще один жесткий диск на свою рабочую станцию ​​для использования в качестве выделенного общего ресурса, уже отформатированного для NTFS, с именем тома «share» и смонтированным как «G:». Поэтому я щелкнул стрелку рядом с компьютером выберите диск G: и нажмите кнопку ОК .)

(В вашем случае вы должны выбрать папку или диск, которые вы хотите отправить, а затем нажать кнопку ОК .)

После того, как вы сделали свой выбор и нажали кнопку OK , VirtualBox Manager заполнит поля « Путь к папке» и « Имя папки» формы « Добавить общий доступ» . Оставьте поле « Путь к папке» в покое, но вы можете изменить имя папки, если хотите - просто обязательно запомните его на потом.

Заполните форму « Добавить общий доступ », установив флажок « Сделать постоянным» , но не забудьте оставить флажок « Автоматическое подключение» - мы позаботимся о монтаже позже. (И, конечно же, если вы хотите сделать папку или диск доступными только для чтения, тогда установите флажок « Только для чтения» ). Затем нажмите кнопку « ОК» .

Недавно настроенный общий ресурс теперь должен отображаться как запись в разделе « Папки компьютеров» в списке папок . Нажмите кнопку ОК .

Чтобы смонтировать этот общий ресурс во время загрузки (запуска), нам нужно добавить строку определения монтирования в / etc / fstab в нашей гостевой установке Debian jessie. Это редактирование необходимо выполнить с правами root или с помощью sudo, например:

sudo nano /etc/fstab

(Я лично использовал vi, но поскольку nano является редактором по умолчанию в Debian jessie, я указал его в приведенном выше примере.)

Чтобы смонтировать этот общий ресурс в моем домашнем каталоге, для которого в качестве владельца и группы указаны мои личные UID и GID, я добавил следующее определение в / etc / fstab:

share /home/conib/share vboxsf comment=systemd.automount,uid=conib,gid=conib,noauto 0 0

(Обратите внимание, что вокруг символов "=", "." Или "," нет пробелов.)

Определение / etc / fstab имеет вид

<Device> <Mount Point> <Type> <Options> <Dump> <Pass>

(Обратите внимание, что между полями определения должны быть пробелы - пробел (ы) и / или табуляция (и)), но не должно быть пробелов внутри поля.)

В поле «Устройство» должно быть указано имя папки, которое мы указали через VirtualBox Manager Add Share . Я изменил значение по умолчанию "G_DRIVE" на "поделиться".

«Точка монтирования» - это спецификация пути к каталогу, которая уже должна существовать, но должна быть пустой. (То есть все, что уже присутствует в этом каталоге, будет скрыто тем, что вы монтируете поверх него.) Я создал новый пустой подкаталог с именем "share" в моем домашнем каталоге.

«Тип» - это «vboxsf».

«Опции» (comment = systemd.automount, uid = conib, gid = conib, noauto) были хитрыми, и для их настройки потребовалось немало усилий.

Установите «Дамп» на 0, если вы не уверены, что хотите установить что-то еще.

И поскольку мы не хотим, чтобы fsck проверял этот ресурс, установите для «Pass» также 0.

Когда вы добавили строку определения в / etc / fstab, перезагрузите гостевую систему Debian и убедитесь, что вы видите файлы и подпапки вашего общего ресурса.

НТН.

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