Общий доступ к папке между гостем и хостом в virt-manager KVM/Qemu/libvirt
Приложение или пакет virt-manager использует библиотеку libvirt для предоставления услуг управления виртуальными машинами. Оно имеет интерфейс рабочего стола, который помогает создавать, удалять и управлять несколькими виртуальными машинами.
Интерфейс рабочего стола virt-manager и его компоненты предоставляют гибкое управление виртуальными машинами для различных случаев использования. Это бесплатное приложение с открытым исходным кодом, используемое в основном для виртуальных машин KVM. Однако оно может поддерживать и другие гипервизоры, такие как Xen и LXC.
Замечание о virtiofs
Общий доступ к файлам и папкам обеспечивается общей файловой системой libvirt под названием virtiofs. Она предоставляет все возможности и параметры для доступа к дереву каталогов на хост-машине. Поскольку большинство конфигураций виртуальных машин virt-manager переведены в XML, общие файлы/папки также могут быть заданы XML-файлом.
Общая папка в virt-manager
- Во-первых, убедитесь, что гостевая виртуальная машина выключена. В графическом интерфейсе virt-manager выберите виртуальную машину и нажмите на Open, чтобы открыть настройки консоли.
- Нажмите на иконку с надписью show virtual hardware details на панели инструментов. Затем нажмите на Memory на левой панели.
- Выберите опцию «Enable shared memory». Нажмите «Применить».
- Затем нажмите «Добавить оборудование» внизу.
- Выберите Файловая система на левой панели в окне добавления нового оборудования.
- Затем выберите Driver=virtiofs на вкладке Details. Нажмите
browse > browse local
и выберите путь к хосту, к которому вы хотите получить доступ внутри гостевой виртуальной машины. - В целевом пути укажите любое имя, которое вы хотите. Это просто тег файла, который будет использоваться при монтировании.
- Итак, если я хочу получить доступ к папке Pictures/Screenshots (
/home/debugpoint/Pictures/Screenshots
), примерные настройки могут быть следующими:
Ниже приведены настройки XML для вышеуказанной конфигурации. Вы можете найти его на вкладке XML.
<filesystem type="mount" accessmode="passthrough"> <driver type="virtiofs"/> <binary path="/usr/libexec/virtiofsd"/> <source dir="/home/debugpoint/Pictures/Screenshots"/> <target dir="mount_tag_pictures"/> <alias name="fs1"/> <address type="pci" domain="0x0000" bus="0x08" slot="0x00" function="0x0"/> </filesystem>
Нажмите кнопку Готово. В главном окне virt-manager щелкните правой кнопкой мыши на виртуальной машине и нажмите Run, чтобы запустить виртуальную машину. Не забудьте нажать на «показать графическую консоль» (значок монитора на панели инструментов – если ВМ не отображается.
В гостевой машине создайте папку, в которую вы хотите смонтировать папку хоста. Для этого примера я использовал /mnt/pictures.
sudo mkdir /mnt/pictures
И, наконец, смонтируйте папку хоста с помощью метки, созданной в предыдущем шаге, в эту новую папку. Используйте следующую команду для этого. Убедитесь, что имя тега и папки в приведенной ниже команде соответствует вашей системе.
sudo mount -t virtiofs mount_tag_pictures /mnt/pictures
Теперь вы можете просматривать папки и добавлять/удалять элементы без проблем в virt-manager между хостом и гостем.
Подведение итогов
Надеюсь, это решение поможет вам получить доступ к файлам и папкам хоста с гостевой машины. Помните, что ваш идентификатор пользователя, который используется для запуска приложения virt-manager, должен иметь такой же доступ к папке хоста.
Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.
Вдохновлен www.debugpoint.com
Хорошо бы еще дописать как сделать автомонтирование общей папки при запуске виртуалки
Постараемся сделать. Спасибо за дополнение