$ dnf install guestfs-tools \
\
libvirt-daemon-config-network\
libvirt-daemon-kvm \
qemu-kvm \
virt-install \
virt-viewer
virt-top# GUI Manager
$ dnf install virt-manager
$ systemctl enable --now libvirtd
$ sudo virsh net-define /usr/share/libvirt/networks/default.xml
$ sudo virsh net-autostart default
$ sudo virsh net-start default
$ mkdir -p $HOME/var/lib/libvirt/images
$ virsh pool-define default-pool.xml
$ virsh pool-autostart default
$ virsh pool-start default
virsh vol-create default volume.xml
virsh define <domain>.mxl
virsh start <domain>
virt-viewer <domain>
virt-sparsify --in-place <path/to/disk/image>
mkdir -p $HOME/var/lib/libvirt/qemu/nvram
$ sudo semanage fcontext -a -t svirt_image_t "<path no slash>(/.*)?"
$ sudo restorecon -vR <path no slash>
$ virsh edit <domain>
<filesystem type='mount' accessmode='squash'>
<source dir='<path/to/share>' />
<target dir='<mount name>' />
</filesystem>
guest$ echo '<mount name> <mount point> 9p trans=virtio,version=9p2000.L 0 0' >> /etc/fstab
guest$ reboot
virsh snapshot-create-as <domain> --name <name>
From https://unix.stackexchange.com/a/691192
$ virsh shutdown <domain>
$ backingfile=$(qemu-img info <domain>.<snapshot name> -U | grep -Po 'backing file:\s\K(.*)')
$ targetdisk=<sda or some such>
$ virt-xml <domain> --edit target=$disk --disk path=$backingfile --update
$ virsh snapshot-delete --metadata <domain> <snapshot name>
$ rm <snapshot image file>