Как получить доступ к общей папке в VirtualBox?

160

Я следовал инструкциям по совместному использованию папок между Windows 7 и Ubuntu в VirtualBox.

Несмотря на это папка появляется со знаком X и выдает мне следующее сообщение при попытке открыть ее:

Не удалось отобразить содержимое папки

Когда я выбираю Shared Folderиз Deviceменю VirtualBox , отображается следующее предупреждение:

На системной странице вы выделили более 50% памяти вашего компьютера (2,93 ГБ) для виртуальной машины ...

Как я могу успешно делиться папками между Windows и Ubuntu, используя VirtualBox?

userInThisWorld
источник
Обратите внимание, что вы не можете поделиться символическими ссылками!
Джоэл Шегрен

Ответы:

147

Доступ к общим папкам в Virtual Box

Командная строка

По умолчанию общие папки VirtualBox создаются с правами чтения / записи для гостя. Это можно сделать из командной строки на хосте с помощью:

VBoxManage sharedfolder add "VM name" --name sharename --hostpath "C:\test"

Добавив опцию, --readonlyмы можем ограничить их только для чтения. Используйте --transientопцию , если вы хотите только акции появятся в текущей сессии , но не сохраняется для следующих сеансов. Существуют некоторые ограничения для общих папок (подробности см. В этом вопросе ). Если предварительные условия выполнены, мы можем смонтировать эти общие папки вручную, выполнив следующие команды в гостевой системе:

mkdir /home/<user>/vboxshare
sudo mount -t vboxsf -o uid=1000,gid=1000 sharename /home/<user>/vboxshare  

Конечно, мы также можем использовать различные опции монтирования для монтирования как только для чтения или монтирования с доступом только для чтения к root.

Автоматическое монтирование через Virtual Box Manager

В случае, если мы включили автоматическое монтирование при создании общей папки из Virtual Box Manager, эти общие папки будут автоматически смонтированы в гостевой системе с точкой монтирования /media/sf_<name_of_folder>. Чтобы иметь доступ к этим папкам, пользователи в гостевой системе должны быть участником группыvboxsf .

sudo usermod -aG vboxsf userName

Гость должен будет перезапустить, чтобы добавить новую группу.

Источник и дальнейшее чтение: Руководство пользователя Virtual Box

Takkat
источник
17
я установил общую папку в графическом интерфейсе, а также установил автоматическое монтирование. перезапустил ВМ, пошел, /mediaно там все еще ничего нет
амфибия
2
@amphibient @ laike9m Мне пришлось перезапустить виртуальную машину, чтобы увидеть папку в папке/media/
David_G
7
Эта команда, предложенная другим ответом здесь, кажется более ясной и имеет лучший результат:sudo adduser your_username vboxsf
Джордан Бро
1
@JordanBrough: совершенно правильно - все пути ведут в Рим. Вы даже можете использовать графический интерфейс users-admin. Команда была отредактирована другим пользователем.
Таккат
Спасибо за ваш ответ ... в команде, которую вы упомянули выше sudo mount -t vboxsf -o uid=1000,gid=1000 share /home/<user>/vboxshare, я не вижу упоминания о том sharename, который используется при создании общей папки с помощью VBoxManage sharedfolder add "VM name" --name "sharename" --hostpath "C:\test". Если существует несколько общих папок ... как VirtualBox узнает, с какой sharenameпапкой следует связать vboxshare? Или ты имеешь в виду, что sharenameдолжно быть так же, как vboxshare?
alpha_989,
121

На самом деле есть простой способ сделать это:

  1. Установите пакет расширений для VirtualBox.
  2. Перезагрузите вашу виртуальную машину
  3. Установите гостевые дополнения в вашем гостевом Ubuntu

    • Вы можете установить ISO, который включен /mediaили нажмите Left Control+D
  4. перезагрузка

  5. Попробуйте получить доступ /media/sf_your_shared_folder_name. Если у вас все еще нет доступа, это означает, что вы не принадлежите к vboxsfгруппе, как сказал Нило. Эта команда решит вашу проблему:

    sudo adduser your_username vboxsf
    
  6. Выйдите и войдите снова, чтобы применить изменения adduser. Смотрите комментарии kol и atcold ниже.

  7. Если вы все еще не видите общую папку, вы должны смонтировать ее. Вы можете активировать автомонтирование для общей папки в настройках VirtualBox Manager.
  8. Перезагрузите снова.
tataogg
источник
7
ЭТО. Я не был в группе пользователей. Похоже, это должно было быть автоматизировано путем добавления жестов или, по крайней мере, четко указано.
Проснулся, Зная
1
Кажется, проблема для меня в том, что мое имя пользователя не root. Это должно было быть упомянуто где-то
Проснулся, Зная
22
ВАЖНО: Вы должны перезагрузить компьютер после звонка adduser.
кол
5
@kol Нет, вам нужно только выйти из системы и войти снова.
Atcold
@ Atcold Выйти из системы и снова добавить группу к текущему пользователю (сеанс), но в моем случае не активировал автоматическое монтирование общей папки. Только перезагрузка сделала.
Scai
83

Во-первых, пожалуйста, убедитесь, что вы установили гостевые дополнения

  1. Запустите свою виртуальную машину

  2. Устройства> Вставить образ гостевого дополнения CD ... Вставить образ компакт-диска Guest Additions ...

  3. Смонтируйте CD:

    sudo mount /dev/cdrom /media/cdrom
    
  4. Установите необходимые пакеты:

    sudo apt-get install make gcc linux-headers-$(uname -r)
    
  5. Установка:

    sudo /media/cdrom/VBoxLinuxAdditions.run
    

Во-вторых, добавьте своего пользователя в группу 'vboxsf':

~$ echo $USER; 
ahmed
~$ sudo usermod -a -G vboxsf ahmed

перезагрузка

Знайте, что ярлык вашей общей папки lpi(например):

Изменить общую папку

Готовьтесь sf_к этикетке. Затем вы найдете вашу общую папку в/media/sf_lpi

Наконец, вы также можете создать ссылку на свой дом. Например:

ln -s /media/sf_lpi /home/ahmed/lpi

:)

Абденнур ТУМИ
источник
Могу ли я использовать общую папку с виртуальной машины Ubuntu без образа жесткого диска, но только с образом Live CD? В основном я пытаюсь добавить два дисковода компакт-дисков, один из которых содержит Ubuntu Live CD, а другой - VBGuestAdditions.iso, и запустить компьютер, затем установить VBGuestAdditions в корень обратной петли, и затем я хотел бы получить доступ к общая папка.
Сорин Постельнику
Кроме того, есть ли способ увидеть общую папку перед монтированием, например, с помощью команды вроде lsblk или чего-то еще?
Сорин Постельнику
Когда я пытаюсь выполнить команду «sudo mount -t vboxsf mysharename mysharemountpoint», я всегда получаю: «/sbin/mount.vboxsf: монтирование не удалось с ошибкой: такого устройства нет»
Сорин Постельнику,
24

Добавьте общую папку в виртуальную машину с помощью графического интерфейса vBox. Убедитесь, что вы выбрали автомонтирование и сделаете постоянным

Войдите в виртуальную машину, используя учетную запись root

Проверьте, существует ли группа vboxsf

~$ grep vboxsf /etc/group
vboxsf:x:125:

Проверьте, что пользователь еще не входит в группу vboxsf

~$ id nilo
uid=1000(nilo) gid=1000(nilo) groups=1000(nilo),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),109(lpadmin),124(sambashare)

Добавить пользователя nilo в группу vboxsf

~$ sudo usermod -a -G vboxsf nilo

Проверьте еще раз группы пользователей

~$ id nilo
uid=1000(nilo) gid=1000(nilo) groups=1000(nilo),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),109(lpadmin),124(sambashare),125(vboxsf)

Перезагрузитесь и войдите как nilo

Общая папка теперь доступна в /media/sf_dropbox(dropbox - это имя, которое я дал общему ресурсу)

NiloVelez
источник
Перезагрузка у меня сработала!
Тарик
10

Совместное использование папки между ОС хоста -> Windows и Гостевой ОС -> Ubuntu (виртуальная коробка)

Шаг 1 Установите гостевые дополнения из меню VirtualBox, перейдите в раздел «Устройства» -> «Установить гостевые дополнения». Это позволит смонтировать виртуальный компакт-диск на вашем / media / cdrom. От имени пользователя root Откройте эту добавленную папку / media / cdrom, используя опцию Открыть с терминалом (щелчок правой кнопкой мыши).

Шаг 2 Запустите программу VBoxLinuxAdditions.run. Когда программа завершит перезагрузку вашего VirtualBox.

$ sudo ./VBoxLinuxAdditions.run

Шаг 3 Создайте общую папку. Из виртуального меню перейдите в «Устройства-> Общие папки», затем добавьте новую папку в список, эта папка должна быть в окнах, которыми вы хотите поделиться с Ubuntu (Гостевая ОС). Сделайте эту созданную папку автоматически смонтированной. Пример -> Создать папку на рабочем столе с именем Ubuntushare и добавить эту папку.

Шаг 4 Когда вы закончите со спецификацией общих папок, мы смонтируем папку из Ubuntu (Гостевая ОС). Создайте точку монтирования, это каталог в Ubuntu, который будет обмениваться файлами с общей папкой из Windows. Запустите это, чтобы создать каталог в Ubuntu

$ sudo mkdir ~/Desktop/windowsshare

Шаг 5 После создания точки монтирования вы можете смонтировать общую папку. Запустите эту команду, чтобы открыть общий доступ к папке:

$ sudo mount -t vboxsf Ubuntushare ~/Desktop/windowsshare

Ubuntushare - это имя папки, которую мы добавляем в раздел «Устройства VirtualBox», эта папка находится в Windows (хост-ОС). ~ / Desktop / windowsshare - это каталог в Ubuntu (Гостевая ОС)

ПОЗДРАВЛЕНИЯ-> Теперь вы можете обмениваться файлами между Windows и Ubuntu. Попробуйте добавить любой файл в общую папку Ubuntu для Windows (Host OS), теперь проверьте папку Windows Ubuntu (Guest OS), в которой будет отображаться файл.

Моя статья

Общая папка ч / б windows и убунту

Shaurya Uppal
источник
3
  1. Установите программу под названием «Программы и группы» из Центра программного обеспечения
  2. Выберите текущего пользователя и нажмите «Управление группами»
  3. Выберите vboxsf и нажмите «Добавить»
  4. перезагрузка
Mohamed
источник
Не удалось найти в программном центре Mint 17.1, но в меню были пользователи и группы, это так ??
russ_hensel
@russ_hensel Mint не является официальной версией Ubuntu. Задайте свой вопрос в Unix и Linux .
wjandrea
1
  1. Создайте каталог, где вы собираетесь монтировать это, как mkdir docs

  2. Установите Guest Additions на гостевую машину Ubuntu.

  3. Завершите работу гостевой системы Ubuntu, затем настройте ее.

  4. В разделе «Хранилище» настройте общую папку и запишите, что вы указали в качестве имени во втором поле. Например "сумасшедший". Установите флажок для автоматического монтирования.

  5. Загрузите гостя Ubuntu.

  6. Как вы сказали, на самом деле он не будет доступен. (Это ключевая часть вашего вопроса.) Вместо этого вы найдете его там /media/sf_crazy, где «сумасшедший» - это имя, которое вы ему дали. И он также будет присутствовать в вашем домашнем каталоге ~/crazy.

  7. Теперь вам нужно сделать еще один шаг для его монтирования:

    sudo mount -o uid=1000,gid=1000 -t vboxsf ~/crazy ~/docs
    
Крис Москини
источник
1

Выполните эти шаги после установки гостевых дополнений. В среде хоста Windows 10 на компьютере с Windows мне приходилось делиться папками.

  1. Щелкните правой кнопкой мыши папку, чтобы поделиться
  2. Выберите «Поделиться с»
  3. Выберите «Конкретные люди»
  4. Выбрал Все, варианты чтения / записи
  5. На клиентской машине с Ubuntu выполните команду: sudo adduser xxxxxxx vboxsf

где xxxxxx - это имя вашей учетной записи. Выйдите из системы и войдите в Ubuntu.

user3889404
источник
0

На данный момент (версия 6.0.10 VirtualBox) есть make permanentи auto-mountопции для общей папки, а также mount point( At) в GUI virtualbox. Для меня сработало следующее:

  1. На гостевой Ubuntu: sudo apt-get install virtualbox-guest-utils
  2. Добавьте общую папку в GUI VirtualBox.
  3. Перезагрузите гостевую ОС

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

Алексей Мартианов
источник