Смонтируйте VirtualBox SharedFolder в Ubuntu VM при загрузке

15

У меня Ubuntu VM работает в VirtualBox.
У меня есть Общая папка, настроенная как myshare папка, созданная в моем домашнем каталоге ( ~/jamesw) как host. использование строки sudo mount -t vboxsf myshare hostиз моего домашнего каталога в Терминале правильно монтирует диск, но если я перезагружаюсь, он не монтируется снова.

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

Джеймс П. Райт
источник

Ответы:

22

Автоматическое монтирование общих папок с помощью Virtual Box Manager

С Virtual Box> 4.0 мы можем автоматически монтировать общие папки на виртуальной машине. Чтобы сделать это для Ubuntu мы

  • необходимо установить Guest Additions в гостевой ОС
  • убедитесь, что пользователи в группе vboxsf
  • определить общие папки из Virtual Box Manager

Щелкните правой кнопкой мыши на вашей виртуальной машине и выберите « Настройки» -> «Общие папки» . Это выведет список существующих общих ресурсов или позволит вам определить новую общую папку, нажав на синий значок папки с зеленым +знаком в правой верхней части:

введите описание изображения здесь

Выберите вашу папку в раскрывающемся меню « Путь к папке» или выберите « Определить другие» для селектора файлов, в котором указана файловая система хоста. Выберите имя для доли (например, myshares ). С помощью галочки Auto-mount эта папка всегда будет монтироваться в гостевой каталог Ubuntu /media/sf_myshares(префикс sf_будет добавлен автоматически).


В качестве альтернативы, чтобы определить общие папки в работающей гостевой ОС, мы можем выбрать « Устройства -> Общие папки» в меню окна Virtual Box Manager:

введите описание изображения здесь

С помощью галочки Make Permanent эти общие папки также будут доступны при следующей загрузке и будут монтироваться, если дополнительно установлен флажок Auto-mount .

Takkat
источник
Это заставит гостевую ОС автоматически смонтировать хост- ресурс, и я считаю, что OP хочет обратного: смонтировать гостевой ресурс в своей хост- ОС. Если я ошибаюсь, тогда я полностью неправильно понял вопрос, и мой ответ следует игнорировать
MestreLion
1
@MestreLion: Вы ошибаетесь, извините! Я думаю, что моя проблема в том, что я никогда не мог найти общий диск на виртуальной машине Ubuntu, потому что я понятия не имел, что он монтируется на / media. Если бы я понял, что этот вопрос даже не был бы необходим.
Джеймс П. Райт
@James: Ой, тогда извини. Монтировать общий ресурс хоста в гостевой ОС легко, и у вас есть несколько вариантов. Помимо (превосходного, кстати) ответа, приведенного здесь, знаете ли вы, что гостевую ОС можно увидеть в локальной сети точно так же, как на обычной машине? Просто измените сеть с по умолчанию NATна Bridged. Теперь вы можете «обмениваться» акциями от гостя к хосту (и наоборот), используя Nautilus, Samba и т. Д.
MestreLion
@MestreLion: если честно - я в основном делюсь файлами своего хоста (и гостя), используя Samba по сети;)
Таккат
@ Takkat: я тоже! (и это делает оба наших ответа устаревшими!: P)
MestreLion
7

Я не думаю, что использование / etc / fstab будет работать (у меня это не сработало), потому что этот файл обрабатывается до загрузки SF-модуля и не может смонтировать общий ресурс, см. HOWTO: Использование общих папок 1 .

Кеннет Гулбрандсой
источник
1
См. Forums.virtualbox.org/viewtopic.php?f=3&t=15868 как это исправить. По сути, добавьте команду mount в /etc/rc.local или ее эквивалент.
Reinier Post
2

Это еще не полный ответ, но больше похоже на рекомендации по 2 подходам:

1 - Вы можете отредактировать /etc/fstabи добавить это крепление там. Вам нужно будет перевести ваш параметр монтирования в синтаксис fstab. Дикая догадка была бы что-то вроде /home/jamesw/host vboxsf myshare,umask=002,uid=<youruser>,gid=plugdev 0 0. Вам нужно sudoбудет отредактировать ваш fstab, но после этого он будет автоматически смонтирован при загрузке. Поскольку это делается еще до того, как вы войдете в систему, вам нужен абсолютный путь к точке монтирования (отсюда / home / jamesw / host), вы не можете использовать $HOMEили ~. Подсказка: папка "host" не должна существовать. Если он находится в fstab, mount создаст его для вас.

2 - Вы можете использовать fusermountвместо монтирования. Синтаксис похож (но не идентичен, поэтому вам все еще нужно перевести параметры монтирования). Fusermount требует, чтобы ваша точка монтирования находилась где-то внутри вашего $ HOME, но самое большое преимущество в том, что вам это не нужно sudo. И монтирование будет доступно в Nautilus (как если бы это был CD или USB-ключ). После того, как вы получите правильные параметры и протестируете их, вы можете добавить их в свой ~/.profile, который запускается при каждом входе в систему.

РЕДАКТИРОВАТЬ: Я предполагаю, что либо Virtualbox не нужно, чтобы машина фактически работала для того, чтобы она могла обмениваться папками, ИЛИ что она запущена и работает перед входом в систему

MestreLion
источник
Использование / etc / fstab не работает, см. Ответ Кеннета Гулбрандсой.
Reinier Post
0

Автоматическое монтирование гостевых и общих папок Ubuntu 16.04 доступно обычному пользователю

Для автоматического монтирования и доступа к этим папкам как обычного пользователя требуются определенные шаги.

  1. Не используйте официальные гостевые дополнения. Вместо этого установите virtualbox-guest-dkms.

    sudo apt-get install -y virtualbox-guest-dkms
    sudo usermod -aG vboxsf $(whoami)
    sudo VBoxControl guestproperty set /VirtualBox/GuestAdd/SharedFolders/MountDir ~/vbshare
  2. Добавьте несколько общих папок с помощью Auto-mountи Permanentпроверил.

  3. Перезапустите VM.
  4. Проверьте, есть ли у вас какие-либо папки vb:

    mount | grep vboxsf

  5. Если это так, смените право собственности ~/vbshareна себя.

    sudo chown $(whoami):$(whoami) ~/vbshare

Добавить новые общие папки без перезагрузки виртуальной машины

  1. Добавить общую папку.
  2. Проверьте, можете ли вы найти его в списке с помощью этой команды:

    sudo VBoxControl sharedfolder list

  3. Если это так, создайте каталог и смонтируйте

    mkdir ~/vbshare/newfolder
    sudo mount -t vboxsf newfolder ~/vbshare/newfolder
    
rofrol
источник