Служба libvirt-guests запускается после завершения службы libvirtd, что не позволяет ей выключить или приостановить виртуальные машины. В unit-файле указан параметр After, но не на службу libvirtd, а на ее сокет. Изменение на службу исправляет проблему и виртуальные машины корректно выключаются и при включении компьютера восстанавливаются или включаются заново. Источник: https://forum.altlinux.org/index.php?topic=47934.0
Воспроизводится в сизифе. Нужно в файле /lib/systemd/system/libvirt-guests.service поменять After=libvirtd.socket на After=libvirtd.service После данного изменения виртуалки выключаются и включаются автоматически при выключении/включении хоста. Для информации: дополнительно ещё нужно в конфиге /etc/libvirt/libvirt.conf раскомментировать строку uri_default = "qemu:///system"