virsh snapshot-create-as ... --disk-only borg create .... vmimage.raw virsh blockcommit ... --active --pivot
https://www.borgbackup.org/
guestfish/libguestfs is then used if you need specific files within an image instead of a complete restore.
https://libguestfs.org/guestfish.1.html
Example dump the name of all files on all filesystems:
guestfish --ro -i -a vmimage.raw find /