Backup VM
Select Target VM
# sudo virsh list --all Id Name State ---------------------------------------------------- - win10 shut off
Backup VM XML (meta data)
# sudo virsh dumpxml win10 > win10.xml.20201104
Check VM Image
# cat win10.xml | grep file
<disk type='file' device='disk'>
<source file='/var/lib/libvirt/images/win10.qcow2'/>
<disk type='file' device='cdrom'>
<source file='/ISOs/Win10_1909_Korean_x64.iso'/>
Shirink Image Size (if needed)
12,656MB → 12,552MB
# cd /var/lib/libvirt/images/ # qemu-img convert -O qcow2 win10.qcow2 win10.qcow2.20201104 # ls -l win10.qcow2* -rw-r--r--. 1 root root 13270974464 2020-11-04 15:59 win10.qcow2 -rw-r--r--. 1 root root 13162053632 2020-11-04 15:55 win10.qcow2.20201104
Restore VM
Copy xml and image (qcow2)
# cp win10.xml.20201104 /var/lib/libvirt/images/ # cp win10.qcow2.20201104 /var/lib/libvirt/images/win10.qcow2
Remove Previous VM / Undefine VM (if needed)
# sudo virsh undefine win10
Modify XML (if needed)
change name, cpu, memory, network, etc ... if needed
win10.xml.20201104
<domain type='kvm'>
<name>win10</name>
<uuid>7bc4c0c4-a266-43f9-9188-4983cf9c3a23</uuid>
...
<memory unit='KiB'>8388608</memory>
<currentMemory unit='KiB'>8388608</currentMemory>
<vcpu placement='static'>2</vcpu>
<os>
<type arch='x86_64' machine='pc-q35-rhel7.6.0'>hvm</type>
<boot dev='hd'/>
</os>
...
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/win10.qcow2'/>
<target dev='sda' bus='sata'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
...
<interface type='bridge'>
<mac address='52:54:00:3b:d9:a6'/>
<source bridge='br0'/>
<model type='e1000e'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</interface>
...
</devices>
</domain>
Restore / Define VM (if needed)
# cd /var/lib/libvirt/images/ # sudo virsh define win10.xml.20201104