On Thu, Jun 22, 2017 at 11:02:41 -0400, Doug Hughes wrote:
[...]
virsh blockcommit $vm $DISK --active --pivot
Normally this works fine, though something went wrong on the 20th.
something happened to make the blockcommit fail, but the -snap file got
deleted (note to self - check return code from blockcommit command!)
So now I'm in a state. The domain i still running. but it's running off
the -snapshot that is in the xml. I googled around for how to recover a
blockcommit from a deleted snapshot, but didn't find anything. (pointers
welcome)
While it's still running you are lucky as the kernel did not delete the
file until you shutdown the qemu process.
There are these options:
1) if you don't care about the snapshot hierarchy, but want to save the
full disk contents of the VM, you can use the block copy operation and
copy everything into a new image.
2) If you removed the top level image (which it seems) you can even use
shallow block copy, if you pre-create the new file properly. Then you
can even keep the top layer properly.
3) If it's any other than top layer, with a new-enugh qemu and some QMP
command magic, any layer can be restored, but that will require some
work.
Please let me know which option do you want to do and I can guide you
further.
Please just don't turn off the VM :)