Вопрос или проблема
Запуск образа 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.
Заключение
- Убедитесь, что корректно настроены права доступа к файлу образа.
- Используйте
virsh
для управления виртуальными машинами, созданными с помощьюvirt-manager
, чтобы избежать необходимости в ручном переводе параметров. - Если вам всё же нужно запустить виртуальную машину через командную строку QEMU, изучите конфигурационный файл XML на предмет необходимых параметров.
Если у вас возникнут дальнейшие вопросы или понадобится дополнительная помощь, не стесняйтесь обращаться!