Совместное использование всего домашнего каталога между хостом и гостем с помощью Virtual Box

Совместное использование всего домашнего каталога между хостом и гостем с помощью Virtual Box

По некоторым причинам, место, где я работаю, застряло на Ubuntu 12.04. Поскольку мне нужно много нового программного обеспечения, я хотел использовать виртуальную машину с Ubuntu 14.04. Я успешно настроил все с virtual box 4.3(Oracle Edition).

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

В настоящее время каталог смонтирован на гостевой системе с AutoFS. Пользователь в гостевой системе и хосте имеет одинаковый логин, uid и основной gid.

Кажется, это работает, когда я использую ssh для входа из гостя в гостя, но это не работает с графическим входом: пользователь немедленно отключается. Я думаю, это потому, что графический вход на хосте создает какие-то файлы; графический вход пытается создать эти файлы на госте, но затем терпит неудачу.

Есть идеи?

решение1

Я согласен с @Dan Cornilescu. Это не очень хорошая идея, особенно учитывая, насколько капризным может быть Linux, когда файлы/папки подвергаются манипуляциям с привилегиями Sudo или при их отсутствии.

Хотя я уверен, что то, что вы предлагаете (несмотря на то, что вы так и не задали вопрос), возможно, я не думаю, что это лучшее решение изначальной проблемы, о которой вы упомянули. "Одна из причин в том, что я не хочу потерять все, если Virtual Box выйдет из строя..."

Я полностью понимаю эту проблему. С одной стороны у вас потрясающий (бесплатно) услуга, предоставляемая Oracle, но вы не хотите полностью полагаться на то, что не является «нормой». Однако есть несколько способов противодействовать этой проблеме, которые обеспечивают большее спокойствие, чем «хранение всех файлов на реальном жестком диске». Вот несколько функций, встроенных в VirtualBox, которые я использую чаще всего.

~ "Снимки." Они делают именно это. Создайте снимок виртуальной машины до/после установки любого типа или запланируйте снимок с помощью CronTab. Таким образом, у вас всегда будет быстрый и простой способ загрузить/загрузить предыдущую версию до сбоя.

~ Простойвывоз ввозVM (или .VHD) по мере необходимости. Я предпочитаю этот метод, потому что он более статичен (для моих нужд), чем Snapshots. Наличие экспорта VHD/VM в качестве резервной копии по сути является портативным компьютером и/или интерактивным резервным копированием. Вместо стандартного (спящего) образа, созданного фирменным методом.

~ Создайте свой собственный или используйте Vagrant Box. Дополнительная информацияЗдесьиЗдесь. Вы можете либо найти то .box, что соответствует вашим потребностям, и использовать его в качестве резервного илиеще лучшеиспользуйте базовый скрипт .boxв тандеме с пользовательским .SH(BASH) скриптом. Обновляйте этот скрипт по мере установки программ и изменения настроек, чтобы в случае сбоя вы просто запускали простой скрипт и вуаля! Вы готовы к работе, прямо из ворот новой установки.

решение2

В целом я считаю, что не очень хорошая идея делить домашний каталог между машинами с разными (версиями) X-сервера, оконного менеджера и/или приложений X, потому что некоторые из них часто используют одни и те же файлы конфигурации домашнего каталога, и разные версии могут накладываться друг на друга. Особенно, если разные версии программного обеспечения используются в одно и то же время.

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

Это может произойти и в обратном направлении, как правило, при попытке повторно использовать существующий домашний каталог из старой ОС в новой ОС (в то время как пользователь с только что созданным домашним каталогом в новой ОС работает нормально) — ваша неспособность войти в систему через графический интерфейс может быть как раз таким случаем.

Возможный подход к сохранению домашнего каталога виртуальной машины на жестком диске хоста без конфликтов (я использую что-то вроде этого, когда обновляю свою ОС):

  • экспортируйте домашний каталог хоста через NFS и смонтируйте его на виртуальной машине, скажем, в /mnt/host_userid.
  • создать сказатьvm_homedirdir внутри него, который вы будете использовать как домашний каталог на виртуальной машине, связав его с виртуальной машиной/домреж:

    /home/userid -> /mnt/host_userid/vm_homedir

  • символические ссылки на каталоги/файлыкроме каталогов приложений/файлов конфигурациичтобы иметь к ним удобный доступ с обеих машин в одном месте, например:

/mnt/host_userid/vm_homedir/documents -> ../documents

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

решение3

Следуя предложениям (и комментариям) @Dan Cornilescu, я решил эту проблему следующим образом:

  1. Создал общий ресурс виртуального ящика для домашнего каталога хоста, скажемhost_home
  2. Необязательно (но очень важно в моем случае) разрешить гостю создавать символические ссылки на общие папки (см.здесьнапример)
  3. Смонтируйте этот ресурс в гостевой ОС во время загрузки с указанием uid и gid гостевого пользователя /mnt/host_home(см.принятый ответ здесьнапример)
  4. В гостевом доме создайте символические ссылки на папки, которыми я хочу поделиться (работает для Desktop, Downloads, и т. д.)

На данный момент все работает как и ожидалось. Возможно падение производительности при чтении или записи файлов, но это нормально.

Связанный контент