Дата и время публикации:
Проблема и решение
1. Суть проблемы
В том, что физически GNOME Boxes свои образы сохраняет в директории $HOME/.local/share/gnome-boxes/images, а в директории $HOME/.config/libvirt/qemu/ находится конфигурационный файл XML [3.2], поиск которых показан в дампе 1.1 и дампе 1.2
Дамп 1.1
~$ find $HOME/.local/share/gnome-boxes/images -name "debian10-uni*" -type f -print /home/user/.local/share/gnome-boxes/images/debian10-uni ~$ find $HOME/.config/libvirt -name "debian10-uni*" -type f -print /home/user/.config/libvirt/qemu/debian10-uni.xml
Поэтому, так как GNOME Boxes основывается на среде управления Qemu-эмулятором libvirt, которая запускается параллельно, как показано в дампе 1.2, вместе с virtlogd в выводе программы procps_ptree [3.3].
Дамп 1.2
~$ procps-ptree 114786 1892 Sl user 0.1 0.1 01-19 16:48:56 00:01:30 libvirtd 160874 1892 Sl user 1.6 2.5 07:46:32 00:04:37 gnome-boxes 173735 1892 Sl user 0.0 0.0 09:00:05 00:00:00 virtlogd 173739 1892 Sl user 10.5 36.0 09:00:05 00:21:05 qemu-system-x86
Поэтому мне нужно было найти решение, как клонировать образ гостевой ОС debian10-uni, который можно запускать в GNOME Boxes не только из $HOME/.local/share/gnome-boxes/images, но и выбранной в произвольной директории.
2. Решение
По умолчанию, GNOME Boxes использует qemu:///session ( сеанса с правами пользователя) вместо qemu:///system (сеанс c правами суперпользователя), что нужно учитывать, когда производится подключение к менеджеру libvirt с использованием пользовательского интерфейса, как показано в дампе 2.1
Дамп 2.1
$ virsh -c qemu:///session Добро пожаловать в virsh — интерактивный терминал виртуализации. Введите «help» для получения справки по командам «quit», чтобы завершить работу и выйти. Virsh # list ID Имя Состояние -------------------------------- 8 debian10-uni работает
Как показано в дампе 2.1, через опцию -с устанавливается соединение с гипервизором вместо ввода команды connect qemu:///session. А после, получить полный список всех запущенных или нет гостевых машин, которые имеют следующие доменные имена, как показано в дампе 2.2 .
Дамп 2.2
virsh # list --all ID Имя Состояние -------------------------------- 8 debiantestin работает - debian10-uni выключен - debian9-univ выключен ...
Такое же, как показано в дампе 2.2, будет наблюдаться, если virsh запустить из под пользователя без ключей и ввода в нем команды connect, что позволило мне выполнить клонирование существующей машины с использованием команды virt-clone. При этом достаточно находится в той директории, например, /home/user/images/, в которой собираетесь хранить образ виртуальной машины. как показано в дампе 2.3
Дамп 2.2
/home/user/images/$ virt-clone --original=debian10-uni --name=debian10-uni-vhost2 -f debian10-uni-vhost2-vm.img --mac=52:54:00:8b:70:48 --check mac_in_use=off ... Клон «debian10-uni-vhost2» успешно создан.
В командной строке, как показано в дампе 2.3, в опции -f указан файл (debian10-uni-vhost2-vm.img) куда будет сохранять резервная копия оригинала домена гостевой ОС (опция --original) под новым именем debian10-uni-vhost2 (опция --name).
Под тем же именем, как в опции, после нормального завершения будет создан файл debian10-uni-vhost2.xml в директории $HOME/.config/libvirt/qemu/ , копию которого рекомендую держать вместе с образом. При этом домен debian10-uni для клонирования в debian10-uni-vhost2.xml должен быть выключен, иначе все закончится с ошибкой.
Соответственно, если вдруг нужно перенести образ ручками на другой центральный узел (гипервизоре), в конфигруации XML атрибуте file элемента source указать абсолютный путь к образу гостевой машины в той директории, где он находится, как в случае с директорией /home/user/vm-images, что показано в листинге 2.4
Листинг 2.4
.../usr/bin/qemu-system-x86_64 ...
При этом рекомендую вместе с образом, который помещен в /home/user/vm-images, туда же сделать резервную копию конфигурации XML из директории $HOME/.config/libvirt/qemu/ , как в моем случае это был файл debian10-uni-vhost2.xml и показано в дампе 2.5
Дамп 2.2
/home/user/images/$ cp $HOME/.config/libvirt/qemu/debian10-uni-vhost2.xml .
Как показала практика, в Debian-11(на момент публикации, для версии gnome-boxes 3.38.2) уже не надо было вносить правки в .config/gnome-boxes/sources/QEMU\ Session, чтобы можно было запускать из под gnome-boxes образы с виртуальными машинами.
3. Библиография
3.1 Move Virtual Machine Image to Another Host Using GNOME Boxes
3.2 GNOME BOXES. БЕЗОПАСНОЕ ИСПОЛЬЗОВАНИЕ
3.3 procps_ptree