Как сделать общую папку в virtualbox ubuntu

Добавил пользователь Валентин П.
Обновлено: 04.10.2024

В VirtualBox, как лучше всего разделить каталог между хостом OS X и гостем Ubuntu?

  • Хост: Mac OS X 10.7.3
  • Гость: Ubuntu 12.04
  • Гость имеет общий каталог, смонтированный через настройки VirtualBox сAccess=Full и Auto-Mount = Yes.

Проблема с этой настройкой показана ниже. В моем общем каталоге я не могу изменить разрешения вообще (не ошибка отказа в разрешениях, но они просто не вступают в силу).

Ubuntu 12.04 (гость):

Mac OS X 10.7.3 (хост):

Если я chmod на гостя, ничего не меняется:

Если я запускаю chmod на хосте, он меняется на хосте, но не на госте:

  1. Завершите работу виртуальной машины, добавьте общие папки в настройках VBox (Постоянный = Да, Автосмонтирование = Нет)
  2. Запустите ВМ

Из терминала беги umask && id как обычный пользователь, чтобы получить что-то вроде этого:

Чтобы смонтировать src каталог в качестве теста:

Чтобы автоматически смонтировать его при входе в систему, отредактируйте /etc/fstab и добавьте следующее:

Проблема - проблемы с разрешениями в vbox/ubuntu для доступа к общему диску OSX

Цель - простой способ обмена каталогами между средами Mac и Ubuntu. К сожалению, примеры, которые я видел до сих пор, кажутся немного более сложными, чем они должны быть на самом деле, и на самом деле не объясняют, какова реальная проблема, которую необходимо решить. Я попытаюсь решить обе эти проблемы здесь.

Среда здесь - Mac с OSX 10.9.5, с Virtual Box 4.3.16, исполняющим Ubuntu-14.04.1 с установленными гостевыми расширениями. Сентябрь 2014 материал.

Я думаю, что вся проблема здесь в том, что uid каталогов на Mac и в Ubuntu должен совпадать - Гид по умолчанию, назначенный для пользователя и групп, различен для OSX и Ubuntu, и в этом проблема.

Чтобы получить доступ к файлу, нужно либо владеть им, либо быть членом группы, которой он принадлежит. И поскольку доступ фактически основан на номере группы, а не на имени группы, все, что необходимо, это создать общий номер группы с обеих сторон, к которым принадлежат пользователи.

Это именно то, что делает решение ниже. Не вводите в заблуждение длиной написанного, это на самом деле очень просто. Есть только много и много примеров того, что происходит.

Я собираюсь переключаться между консолями OSX и VBOX здесь (Mac и Virtual-Box / Ubuntu) в этом документе - убедитесь, что вы понимаете, в каком окне вы находитесь.

Последнее замечание: решение, показанное ниже, основано на установлении общего идентификатора группы между средами OSX и Ubuntu, чтобы разрешения для файлов работали. Могут быть и другие, более современные решения. Этот действительно простой и понятный, и работает на простых базовых установках.

OSX: —————

Обратите внимание, что это было сделано на новом 10.9.5 Mac, на котором ничего нет, он не подключен к корпоративной сети, на нем нет ничего необычного, кроме стандартного программного обеспечения. Это так просто, как только может.

Когда я делал установку по умолчанию на Mac, joe_public был администратором, и его uid был установлен на 501.

Обратите внимание, что uid 501 - это идентификатор первой учетной записи по умолчанию в OSX - ничего особенного

Я создал несколько каталогов, которыми хочу поделиться на стороне Mac. Обратите внимание, что я не помещал их в свой каталог пользователя по причинам резервного копирования.

VBOX: ——————

Простой виртуальный ящик по умолчанию и установка Ubuntu - опять же, joe_public - это администратор по умолчанию, созданный, когда я установил Ubuntu.

Обратите внимание еще раз, что пространство имен между OSX и Ubuntu совершенно другое. Здесь нет абсолютно никакой связи между этими двумя именами.

Создал три точки монтирования, используя настройки Virtual Box -> Shared Folders gui.

ПРИМЕЧАНИЕ. Мне действительно пришлось перезагрузить сеанс, чтобы все эти точки монтирования появились.

Обратите внимание, что gid для них - 999 - это группа vboxsf.

Это было автоматически назначено для нас версией 4.3.16 Virtual Box. Документация vbox показывает, как это изменить, если вы смонтируете путь вручную через командную строку, но кто помнит об этом - просто примите значения по умолчанию, которые нам навязывает графический интерфейс..

Но это не работает (ожидается на данный момент - это то, что мы пытаемся решить)

Обратите внимание, что на данный момент joe_public не является членом этой группы vboxsf - и это будет проблемой, пока мы не исправим это. К вашему сведению: это группы по умолчанию, назначенные учетной записи при ее создании.

Мы не хотим менять gid пользователя joe_public с обеих сторон, так как это неприятно в уже установленных системах и не решает эту проблему для других пользователей. Самое простое решение - создать соответствующий идентификатор группы - vboxsf - на стороне Mac и убедиться, что joe_public является ее членом с обеих сторон.

Итак, по-прежнему в vbox/ubuntu, сделайте joe_public членом группы 999 vboxsf

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

OSX: —————

Теперь нам нужно создать группу vboxsf на Mac. Я сомневаюсь, что имя на самом деле имеет значение здесь - это идентификатор группы 999, который важен. Помните, что пространства имен системы каталогов (а также имена пользователей) различаются в разных операционных системах хоста и виртуальной машины. Но просто для того, чтобы сделать жизнь в здравом уме, мы все называем это vboxsf на Mac. По той же причине почему joe_public использует имя пользователя с обеих сторон.

В OSX нет простой команды add group, как в linux - поэтому используйте команду dscl, чтобы сделать это в несколько этапов. Пожалуйста, обратитесь к документации Mac OS для более подробной информации об этом. Обратите внимание, что мы создаем группу vboxsf и добавляем здесь joe_public.

Итак, на данный момент, мы должны иметь

Доказательство здесь, если это работает - так что это следующий шаг

VBOX: ——————

Перейдите в наш каталог и коснитесь файла

Убедитесь, что мы успешно создали файл.

OSX: —————

VBOX: ——————

Кажется, все работает

VBOX: —————— ЗАКЛЮЧИТЕЛЬНАЯ ПРОВЕРКА

Здесь мы проверяем, что все это зависит от того, является ли пользователь joe_public членом группы vboxsf, и самый простой способ - просто удалить joe_public из группы.

Удаление пользователя joe_public из группы vboxsf

Проверка того, можем ли мы получить к нему доступ в нашем каталоге - а мы не можем, и это доказывает, что это проблема с правами доступа группы

Добавить пользователя обратно в vboxsf

Это снова работает!

VBOX: - ОДНА БОЛЬШЕ ПРОБЛЕМА - символические ссылки в vbox -------

Если вы зайдете в / media / sf_shared, вы обнаружите, что символические ссылки в общих каталогах просто не работают. Это действительно большая проблема, если вы пытаетесь настроить полную среду разработки Linux на общем диске.

По умолчанию символические ссылки не поддерживаются в виртуальных общих папках. Смотрите объяснения ниже. В принципе, насколько я понимаю, символические ссылки представляют собой дыру в безопасности, которая была "исправлена" в Virtual Box путем отключения их поддержки в период 4.1.8 (2011 г.). Я запускаю 4.3.16 здесь.

К счастью, есть задняя дверь для его повторного включения через команду Host VBoxManage. Как всегда, пожалуйста, поймите дыры в безопасности, которые вы можете открыть. Я нахожусь на автономной машине для разработки, так что это не проблема.

Примечание: Ubuntu - это имя моего виртуального компьютера, а shared - это имя общего каталога.

Вы можете получить имя VM следующим образом:

И имя общих папок, либо через графический интерфейс Virtual Box, либо

Я перезагружал всю систему виртуальных ящиков здесь, я не определил минимальные требования для ее выполнения.

В любом случае, чтобы проверить это, вернитесь в окно vbox.

VBOX: ---------

Нет ошибки - и проверить

И вернемся к Mac - просто чтобы доказать, что все работает

Обратите внимание, я проверял это только на хосте OSX и клиенте виртуальной коробки Ubuntu. Ссылки, которые я перечислил выше, похоже, указывают на то, что может быть проблема с хостом на базе Windows.

Упражнение осталось для студента ———————

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

Какие другие решения доступны там, где доступны решения этой проблемы? - Такие вещи, как Active Directory (продукт Microsoft) и тому подобное, могут решить эту проблему. Было бы интересно получить коллекцию этих решений и сравнить там различные особенности и компромиссы.

VirtualBox — программный продукт виртуализации для операционных систем. Иногда бывают ситуации, когда без операционной системы Windows не обойтись. Можно попробовать использовать wine и запустить то приложение, которое нужно. Но не все из них работают или работают некорректно.

Возможности VirtualBox

Начиная с 4-ой версии Oracle xVM VirtualBox существует в единственной редакции, распространяемой под лицензией GNU GPL с открытыми исходными кодами.

Некоторые дополнительные функции выделены в отдельный пакет Oracle VM VirtualBox Extension Pack, среди которых:

RDP-сервер — позволяет подключаться к виртуальной системе удалённо с помощью любого RDP-совместимого клиента;

Пакет Oracle VM VirtualBox Extension Pack распространяется под лицензией PUEL, т.е. его можно использовать бесплатно для личных (некоммерческих) целей.

На данный момент VirtualBox включает в себя следующие возможности:

Нативная x86-виртуализация, не требующая наличия поддержки аппаратных техник Intel VT или AMD-V (которая, однако, может быть включена в настройках).

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

Установка VirtualBox

Из репозиториев ubuntu

Для установки необходимо в терминале набрать следующую команду либо нажать специальную кнопку:

Для продолжения операции у Вас будет запрошен пароль, введите Ваш пароль и ждите пока закончится загрузка и установка приложения.

Из репозиториев Oracle

Версию VirtualBox можно установить с официального репозитория Oracle. На нём находятся более новые версии.

Для добавления репозитория нужно воспользоваться терминалом.

Необходимо добавить официальный репозиторий VirtualBox в файл /etc/apt/sources.list . Для этого выполните команду:

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

Вы должны увидеть примерно следующий текст в Источниках приложений в „Аутентификации”:

Обновите список пакетов:

Устанавливаем пакет для модулей ядра таких как vboxdrv и vboxnetflt:

Для установки VirtualBox введите:

Если нужна более старая версия: замените virtualbox-6.0 на virtualbox-5.2 для установки версии VirtualBox 5.2

После того как VirtualBox установится, вам нужно добавить вашего пользователя в группу vboxusers. Для этого выполните команду в терминале:

Для применения изменений необходимо завершить сеанс и повторить вход в систему, либо перезагрузиться.

Работа с VirtualBox

Процесс установки гостевой системы на платформе VirtualBox весьма прост и не требует от пользователя дополнительных усилий. При создании виртуальной машины необходимо выбрать:

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

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

Дополнения гостевой ОС

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

Для Windows

Просто выберите в меню гостевой операционной системы Устройства→Установить дополнение гостевой ОС. Спустя некоторое время в гостевой Windows должен появится диаллог запуска программы. Если этого не произошло - зайдите в CD-ROM и запустите ее вручную.

Во время установки могут появится предупреждения о несовместимости драйверов. Везде соглашайтесь с установкой. После того как программа установится - перегрузите гостевую ОС. После этого появится нормальное разрешение экрана и другие возможности.

Для Ubuntu

Используя диск Guest Additions

Прежде чем начать установку дополнений гостевой операционной системы, нужно выполнить несколько простых действий.

Используя пакетный менеджер

Расшаривание директорий

Нажимаем правой кнопкой мыши по нужной виртуальной машине, выбираем Свойства → Общие папки .

Также, можно проделать тоже самое и из уже запущенной виртуальной машины.

А для остальных версий:

Для Windows

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

имя_папки - то самое имя, которые Вы дали расшаренной директории.

Для Ubuntu

Общая папка будет монтироваться при загрузке гостевой ОС и иметь адрес /media/sf_имя

Работа с USB устройствами

Если вы хотите использовать USB устройства в гостевой системе, то делаем несколько простых шагов:

После того, как вы нажмете на устройство - VirtualBox без предупреждений заберет ресурс и отдаст его гостевой операционной системе. Так что будьте аккуратны с сохранением данных на устройстве, прежде чем отдать его гостевой ОС. Если вы выберите этот пункт еще раз - устройство также без предупреждений отключиться из гостевой cистемы.

Работа с USB 2.0 устройствами

Начиная с версии 4.0, для работы с USB 2.0 устройствами необходимо установить VirtualBox Extension Pack , который можно найти на официальной странице загрузки.

После загрузки, просто запустите его и он автоматически установится.

Убираем меню и строку состояния машины

Иногда более удобно работать с виртуальной машиной в режиме обычного окна (например, чтобы иметь удобный доступ к другим приложениям). В таком случае меню и строка состояния машины занимают рабочее пространство, которое могло бы быть использовано с пользой. Для того, чтобы отключить меню и строку состояния виртуальной машины, воспользуйтесь командой:

Чтобы включить меню и строку состояния:

Создание RAW диска

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

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

Если таких разделов в вашей системе нет, их можно создать например с помощью утилиты GParted, поджав один или несколько существующих разделов.

Стоит отметить, что создание RAW диска недоступно через графический интерфейс. Придется запускать команды в консоли.

Первое, что надо сделать - определиться какой раздел или диск мы отдадим на растерзание виртуальным системам:

и в него пишем следующую строчку

Если доступ нужен любому пользователю, имеющему право запускать виртуальные машины, проще прописать доступ всей группе vboxusers:

Если вы хотите передать виртуальным системам несколько разделов, то повторите эту строчку для каждого из них, заменяя имя раздела (или диска).

Перегружаем систему и проверяем:

Теперь все готово к созданию диска. Вводим команду (без sudo):

Все, диск создан.

Стоит уточнить, что выделенные таким образом в виртуальный RAW диск разделы, будет рассматриваться гостевой системой как отдельные диски, поэтому основная система к нему обращаться не сможет (в каждом разделе будет вся структура диска, с MBR и своей разбивкой на разделы). Именно поэтому при создании таких разделов, не стоит их форматировать и монтировать к основной системе.

Собственно такой метод позволяет экспериментировать на виртуалке с любыми таблицами разделов. На хосте может быть GPT, а виртуалке на выш выбор MBR или тоже GPT (но своя).

Сохранение и восстановление RAW дисков

В отличие от обычных образов дисков, которые сохраняются и копируются как обычные файлы основной системы, RAW диск - это реальный раздел на диске, который основная система видит как неформатированный. Поэтому для его сохранения используем команду dd и архиватор, умеющий работать с потоками. Могут подойти bzip2 или 7-zip (7za).

Для создания образа диска надо ввести команду

Не забываем подставлять вместо sda6 имя своего раздела!

Степень сжатия особой роли играть не должна. В примерах у bzip2 стоит максимальное сжатие, а у 7za - слабое. Гораздо больше на качество сжатия будет влиять процедура предварительного удаления лишних данных с виртуального диска и заполнение свободного места определенным символом (обычно нулевым). Сделать это можно специализированными процедурами в соответствующей гостевой системе типа Disk Wiper (windows) или BleachBit (ubuntu).

Для восстановления раздела подойдет команда

Здесь стоит обратить внимание на пару тонкостей.

Во-первых, команда dd достаточно медленная и на копирование, например, 20 GiB диска может уйти около 4 часов. Примерно такое же время потребуется и на восстановление.

Во-вторых, восстанавливать образ можно и не в тот же раздел, что был источником. Для этого настоятельно рекомендуется записать точный размер диска, подглядев его, например, в дисковой утилите. В частности размер того же 20 GiB диска был 21 475 885 056 байт. При создании нового раздела для восстановления следует учитывать, что он должен быть как минимум не меньше оригинала. Лучше, если у вас получится создать раздел ровно такого же размера, как и оригинальный.

И еще: сохранять и восстанавливать образы стоит после того, как доступ к разделу будет предоставлен соответствующему пользователю или группе (см. выше).


Так случилось, что иногда нужно вести работу с windows, но с ней куча проблем с точки зрения организации работы с разными версиями php, python, Docker и т.п. и т.д. Да и вообще все серверное ПО лучше проще запускать с Linux. В данном случае речь идет об Ubuntu 18.04.

Идея в целом такая: Установка Linux Server Ubuntu 18.04 в ней по необходимости запустить docker и прокинуть через nginx на внешку, ну или другие пути

Виртуализация

Для установки x64 в VirtualBox необходимо чтобы была включена виртуализация. Для Intel — это VT-x, для AMD это AMD-v.

У меня AMD Athlon II X4 640, но там по-умолчанию отключена виртуализация, из-за чего Linux было не определить какой разрядности систему устанавливать. Включаем в BIOS: Advanced — CPU Configuration — Security Virtual Machine Mode = Enabled.

Установка

file

Linux установился успешно, теперь необходимо сделать общие папки. Для этого необходимо установить (подключить) образ Гостевой ОС
.

Поскольку речь идет о серверной версии, то устанавливать Дополнения придется вручную:

Настройка папок

Особое внимание необходимо обратить на "Имя папки"

Сохраняем настройки и вклюаем виртуальную машину.
После авторизации необходимо создать папку и связать её с обозначенной ранее

После перезагрузки виртуалки вы увидите в папке /home/developer/mount содержимое папки D:\mount

Основная задача блога - стать стартовой платформой для начинающих разработчиков, здесь не только буду писать свои статьи, но также буду выкладывать полезные ссылки которые помогут разобраться в разных вопросах. Будут затронуты темы: Ruby on Rails, PHP, MySQl, CodeIgniter, JQuery.

среда, 24 октября 2012 г.

VirtualBox. Настройка общих папок для Ubuntu

Основная ОС: Windows 7
VirtualBox ОС: Ubuntu 12.04
Задача: настроить общие папки

1. Создаем папку "d:/share" под Windows 7.

2. Открываем настройки VirtualBox, находим в меню пункт "Общие папки" и добавляем там нужную:


. Есть неприятный баг: когда имена папок в обоих системах совпадают - команда mount вернет ошибку, именно потому, папки специально названы share и shared

Читайте также: