Невозможность создать виртуальную машину с помощью virt-manager.

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

Я пытаюсь создать несколько виртуальных машин с помощью virt-manager, и независимо от того, что я делаю, получаю эту ошибку:

Не удалось завершить установку: 'внутренняя ошибка: не удалось запустить гостя: ошибка при запуске libvirt_lxc: не удалось создать /var/lib/libvirt/images/vol.qcow2/.oldroot: это не каталог
'

Трассировка последнего вызова:
  Файл "/usr/share/virt-manager/virtManager/asyncjob.py", строка 65, в cb_wrapper
    callback(asyncjob, *args, **kwargs)
  Файл "/usr/share/virt-manager/virtManager/createvm.py", строка 2001, в _do_async_install
    installer.start_install(guest, meter=meter)
  Файл "/usr/share/virt-manager/virtinst/install/installer.py", строка 701, в start_install
    domain = self._create_guest(
  Файл "/usr/share/virt-manager/virtinst/install/installer.py", строка 649, в _create_guest
    domain = self.conn.createXML(install_xml или final_xml, 0)
  Файл "/usr/lib/python3.9/site-packages/libvirt.py", строка 4035, в createXML
    если ret равно None:raise libvirtError('virDomainCreateXML() не удалась', conn=self)
libvirt.libvirtError: внутренняя ошибка: не удалось запустить гостя: ошибка при запуске libvirt_lxc: не удалось создать /var/lib/libvirt/images/vol.qcow2/.oldroot: это не каталог

Я пытался установить в /etc/libvirt/qemu.conf пользователя и группу, чтобы соответствовать моим пользователю и группе, установил libvirt-glusterfs, и это не сработало. Я использую: libvirtd (libvirt) 7.0.0 и virt-manager v.3.2.0.

Для справки, я использую Manjaro Linux i3wm и мой ядро — 5.11

Я нашел проблему. На самом деле, их две: первая заключалась в том, что у меня не был установлен cpio на моей машине. Это можно легко исправить с помощью sudo pacman -S cpio.

Другая проблема в том, что по умолчанию virsh, когда запускается с sudo, ведет себя иначе по сравнению с запуском virsh под текущим пользователем. Это лучше объясняется в этом треде.

Предлагаемые решения — либо установить LIBVIRT_DEFAULT_URI, либо раскомментировать uri_default = "qemu:///system" в /etc/libvirt/libvirt.conf и, возможно, также в $XDG_CONFIG_HOME/libvirt/libvirt.conf.

Это решило мою проблему, и теперь я могу создавать VMs с virt-manager, но я также рекомендую проверить Cockpit Project.

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

Теория

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

Чтобы понять ваш случай, важно рассмотреть несколько ключевых аспектов. В первую очередь, ошибка указала на невозможность создания директории /var/lib/libvirt/images/vol.qcow2/.oldroot, что может свидетельствовать о проблемах с файловой системой или с правами доступа. Этот путь должен быть точно настроен для хранения образов виртуальных машин. Второй аспект — это роль пакета cpio, который отвечает за манипуляции с архивами и может участвовать в процессе установки, особенно если внутренняя логика требует распаковки или модификации файлов во время инициализации виртуальной машины.

Пример

Представьте ситуацию, когда пользователи пытаются запустить виртуальную машину через virt-manager и сталкиваются с ошибкой, аналогичной вышеупомянутой. Этот сценарий типичен для многих дистрибутивов Linux, таких как Manjaro, где системные настройки отличаются от стандартных. При этом, ошибка может возникать из-за отсутствия определенных пакетов, которые должны быть предварительно установлены.

В вашем примере две основные проблемы были четко выделены: отсутствие пакета cpio и отличие поведения virsh, если его использовать с sudo. Установив недостающие пакеты командой sudo pacman -S cpio, и настроив переменные окружения либвирта для работы без необходимости повышенных привилегий, удалось решить проблему. Это показывает, как небольшие нюансы могут влиять на работу с виртуальными машинами.

Применение

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

  1. Проверка зависимости: Убедитесь, что у вас установлены все необходимые зависимости для работы с virt-manager и libvirt. Манжаро, как и другие дистрибутивы на базе Arch Linux, имеет возможность быстрого поиска и установки пакетов через pacman. Используйте sudo pacman -S <package-name> для установки недостающих пакетов.

  2. Настройка libvirt: Обратите особое внимание на настройки libvirt и virt-manager. Изучите, что означает каждый параметр в конфигурационных файлах /etc/libvirt/qemu.conf и /etc/libvirt/libvirt.conf. Убедитесь, что пути к директориям, доступным для libvirt, имеют правильные разрешения доступа.

  3. Работа с URI: Настройте LIBVIRT_DEFAULT_URI, чтобы избегать проблем с правами доступа при запуске команд от имени вашего пользователя. Это также помогает избежать конфликтов в поведении virsh при использовании с sudo.

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

  5. Резервное копирование и тестирование: Перед выполнением значительных изменений в конфигурации создавайте резервные копии. Это позволит быстро восстановить систему в случае продолжительных сложностей.

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

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

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