Запуск образа qcow2, созданного с помощью virt-manager, с использованием qemu-system-x86_64

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

Запуск образа qcow2, созданного с помощью virt-manager, с использованием qemu-system-x86_64

Версия моего qemu QEMU emulator version 9.0.2 (Debian 1:9.0.2+ds-2+b1).

Я создал виртуальную машину FreeBSD 14 с помощью virt-manager. Ее диск – это образ qcow2:

-rwxr-xr-x 1 libvirt-qemu libvirt-qemu 8.1G 20240916 20:26:09.201 bsdie.qcow2

Я являюсь членом соответствующей группы:

groups
localuser cdrom floppy sudo audio dip video plugdev kvm netdev bluetooth scanner lpadmin libvirt libvirt-qemu

Однако я получаю ошибку прав доступа при попытке запустить эту машину через командную строку:

qemu-system-x86_64 -cpu host -enable-kvm -m 1G -drive file=bsdie.qcow2  -net nic,vlan=0,macaddr=52:54:00:81:b6:cc -net user 
qemu-system-x86_64: -drive file=bsdie.qcow2: Не удалось открыть 'bsdie.qcow2': Доступ запрещен

Что я упустил?

Более общим образом, мне хотелось бы знать, есть ли способ запускать машины, определенные через virt-manager, используя командную строку Qemu; поскольку XML конфигурационные файлы можно найти в /etc/libvirt/qemu, мне хотелось бы знать, есть ли способ “перевести” XML параметры в аргументы командной строки Qemu.

Спасибо!

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

-rwxr-xr-x 1 libvirt-qemu libvirt-qemu 8.1G 20240916 20:26:09.201 bsdie.qcow2

Это означает, что вы не можете открыть файл для записи, даже если вы в группе. chmod g+w должен решить эту проблему.

В общем, машины, созданные с помощью virt-manager, могут управляться из командной строки с помощью команды virsh.

Например:

$ sudo ls /etc/libvirt/qemu                                                    
autostart  build9.xml  networks  pinky9.xml  plexserver9.xml  test9.xml

$ virsh list --all
 Id   Name          State
------------------------------
 1    pinky9        running
 2    plexserver9   running
 -    build9        shut off
 -    test9         shut off

$ virsh start test9
Домен 'test9' запущен

$ virsh list --all
 Id   Name          State
------------------------------
 1    pinky9        running
 2    plexserver9   running
 3    test9         running
 -    build9        shut off

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

Чтобы запустить образ qcow2, созданный с помощью virt-manager, с использованием команды qemu-system-x86_64, вам необходимо учитывать несколько моментов, особенно связанные с правами доступа к файлу образа и командной строкой QEMU.

1. Проблема с правами доступа

Из вашего вывода видно, что права доступа к файлу bsdie.qcow2 следующие:

-rwxr-xr-x 1 libvirt-qemu libvirt-qemu 8.1G 20240916 20:26:09.201 bsdie.qcow2

Это означает, что права на запись для группы, в которую вы входите (libvirt-qemu), отсутствуют. Поскольку вы пытаетесь открыть файл в режиме, требующем права на запись (часто это бывает при использовании QEMU), вам необходимо изменить эти права. Для этого выполните следующую команду:

sudo chmod g+w bsdie.qcow2

После этого ваша группа получит права на запись файла, и ошибка "Permission denied" должна исчезнуть.

2. Запуск QEMU с параметрами virt-manager

Чтобы запустить виртуальную машину, определённую в virt-manager, с помощью команды qemu-system-x86_64, вы можете извлечь информацию из XML-конфигурационных файлов, находящихся в /etc/libvirt/qemu. Использование команды virsh позволяет управлять виртуальными машинами без необходимости в ручном переводе XML-параметров в параметры командной строки.

Вот пример использования команды virsh для управления виртуальными машинами:

# Выводим список всех виртуальных машин
virsh list --all

Вы можете запустить виртуальную машину, указав её имя или ID:

virsh start test9

3. Перевод XML-параметров в команду QEMU

Если вы хотите запустить QEMU с параметрами, соответствующими вашей виртуальной машине, вам придется вручную извлечь информацию из XML, что может быть не самым простым делом. Например, следующее требуется учитывать:

  • Названия образов и их расположение
  • Количество выделенной оперативной памяти
  • Конфигурация сети (например, используемые адаптеры)

Примерная команда может выглядеть так:

qemu-system-x86_64 -enable-kvm -m 1G -drive file=bsdie.qcow2,format=qcow2 -net nic,macaddr=52:54:00:81:b6:cc -net user

Однако, стоит отметить, что вам может потребоваться дополнительно указать параметры процессора и другие конфигурации, такие как звук, USB-устройства и т.п., которые могут быть определены в XML.

Заключение

  1. Убедитесь, что корректно настроены права доступа к файлу образа.
  2. Используйте virsh для управления виртуальными машинами, созданными с помощью virt-manager, чтобы избежать необходимости в ручном переводе параметров.
  3. Если вам всё же нужно запустить виртуальную машину через командную строку QEMU, изучите конфигурационный файл XML на предмет необходимых параметров.

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

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

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