Не удается настроить совместное использование папок в KVM Virtual Machine Manager.

Вопрос или проблема

Я создал виртуальную машину Ubuntu внутри моей Ubuntu с помощью Virtual Machine Manager. Я пытаюсь примонтировать каталог хоста в гостевой ОС, но это не работает. Я использовал инструкции, предоставленные здесь: http://troglobit.com/blog/2013/07/05/file-system-pass-through-in-kvm-slash-qemu-slash-libvirt/.
Я поделился каталогом хоста как “myshare”.

Команда монтирования выполняется без сообщений:

mount -t 9p -o trans=virtio,version=9p2000.L,rw myshare /mnt/host

Вывод mount выглядит многообещающе:

myshare on /mnt/host type 9p (rw, trans=virtio,version=9p2000.L)

Тем не менее, попытка перечислить каталог дает:

cd /mnt
ls
ls: cannot access host: Permission denied
total 0
d???????? ? ? ?         ? host

Ответ можно найти здесь:

https://askubuntu.com/questions/445193/kvm-virtual-machine-manager-sharing-folders-not-working

Человек был прав – это была проблема с apparmor. Теперь мне нужно разобраться, как настроить apparmor в libvirt для разрешения общего доступа к папкам, но это уже совсем другая проблема.

Ответ или решение

Для решения проблемы с невозможностью обмена папками в KVM Virtual Machine Manager вам нужно разобраться с несколькими аспектами настройки системы. Вы столкнулись с типичной проблемой, связанной с ограничениями безопасности, особенно с использованием инструмента AppArmor, который часто бывает активирован в Ubuntu по умолчанию.

Возможные причины и решения:

  1. Проверка состояния монтирования:
    Вы правильно использовали команду для монтирования директории с использованием файловой системы 9p и протокола virtio. Строка вывода myshare on /mnt/host type 9p (rw, trans=virtio,version=9p2000.L) указывает на успешное монтирование. Тем не менее, проблема заключается в ограничении прав доступа.

  2. Проверка конфигурации AppArmor:
    Как вы упомянули, проблема может быть связана с AppArmor. Этот инструмент может блокировать доступ к определенным ресурсам по причинам безопасности. Чтобы решить эту проблему, вам нужно настроить профиль AppArmor для libvirt.

    • Обновление профиля AppArmor:
      Откройте профиль libvirt с использованием текстового редактора. Обычно он расположен в /etc/apparmor.d/abstractions/libvirt-qemu. Внесите изменения, добавив путь к вашей общей папке.

      /путь/к/вашей/папке/** rwk,

      Затем перезагрузите профили AppArmor:

      sudo systemctl restart apparmor
  3. Проверка разрешений на уровне ОС:
    Убедитесь, что пользователи и группы имеют соответствующие права доступа к директории на хост-машине. Это можно сделать с помощью команды:

    sudo chmod -R 755 /путь/к/вашей/папке

    Установите или проверьте группу пользователя libvirt:

    sudo usermod -aG kvm $USER

    Перезапустите виртуальную машину после обновления настроек.

  4. Проверка системных журналов:
    Для более детальной диагностики можно изучить системные журналы. Это может помочь определить, какие именно операции блокируются AppArmor. Используйте следующую команду для просмотра логов:

    sudo journalctl -xe | grep "denied"

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...