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

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

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

4 ответа

Решение

Автоматическое монтирование общих папок с помощью 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:

введите описание здесь

Если установить флажок " Сделать постоянным", эти общие папки также будут доступны при следующей загрузке и будут подключены, если дополнительно установлен флажок " Автоматическое подключение".

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

Это еще не полный ответ, но больше похоже на рекомендации по 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 не нужно, чтобы машина фактически работала для того, чтобы она могла обмениваться папками, ИЛИ что она запущена и работает, прежде чем войти

Автоматическое монтирование гостевых и общих папок в 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
    
Другие вопросы по тегам