Общий доступ к папке между гостем и хостом в 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, должен иметь такой же доступ к папке хоста.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен www.debugpoint.com

Похожие статьи

Комментарии (2)

  • Алексей

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

  • Зарубин Иван

    Постараемся сделать. Спасибо за дополнение