On 03/28/2017 10:28 AM, Patrick O'Callaghan wrote:
On Tue, 2017-03-28 at 09:13 -0500, Robert Nichols wrote:
> On 03/27/2017 12:31 PM, Patrick O'Callaghan wrote:
>> I have a QEMU image snapshot:
>>
>> $ sudo qemu-img info /var/lib/libvirt/images/Windows10.qcow2
>> image: /var/lib/libvirt/images/Windows10.qcow2
>> file format: qcow2
>> virtual size: 20G (21474836480 bytes)
>> disk size: 196K
>> cluster_size: 65536
>> backing file: /home/poc/Win10/win10.qcow2
>> backing file format: qcow2
>> Format specific information:
>> compat: 1.1
>> lazy refcounts: true
>> refcount bits: 16
>> corrupt: false
>>
>> However when I try to restore the virtual disk I get:
>>
>> $ sudo qemu-img snapshot -a /var/lib/libvirt/images/Windows10.qcow2
/home/poc/Win10/win10.qcow2
>> qemu-img: Could not apply snapshot
'/var/lib/libvirt/images/Windows10.qcow2': -2 (No such file or directory)
>>
>> I must be doing something obviously wrong, but can't see what it is.
>> Hints would be appreciated.
>
> What you have is not a snapshot. A snapshot is created with "qemu-img snapshot
-c <snapshot-name> <imagename>", and that is _not_ a separate file. That
"<snapshot-name>" is not a file name but just a tag to identify one of
possibly several snapshots within that "<imagename>" file.
I did create it with the above line. Clearly I didn't understand where
it was, or perhaps I inadvertently deleted it.
That output from "qemu-img info ..." says otherwise. That
/var/lib/libvirt/images/Windows10.qcow2 file was created with "qemu-img create -b
/home/poc/Win10/win10.qcow2 /var/lib/libvirt/images/Windows10.qcow2". There is no
other way that "backing file: /home/poc/Win10/win10.qcow2" could appear in the
output.
In order for the .../Windows10.qcow2 file to be valid, that backing file _must_ exist and
be unchanged since that new file was created.
Currently 'qemu-img snapshot -l <filename>' gives no
output, so it
looks like it's gone assuming it was ever there.
There should not be any output. You simply do not have anything that qemu-img calls a
"snapshot".
(BTW the "no such file or directory" message could not be
less
helpful).
Agreed, 100%.
> What you made was a copy-on-write image using
/home/poc/Win10/win10.qcow2 as a backing file. You can make changes in
/var/lib/libvirt/images/Windows10.qcow2 and not affect the backing file, but the backing
file _must_not_be_changed_ during the lifetime of that dependent image. That c-o-w image
cannot be restored to its original state. The way you do that is to throw it away and
create a new one with the same backing file.
I'm going to try to attach it to another Windows instance to see if it
can be repaired. Otherwise, it looks like I'm screwed.
That backing file _must_ exist, or else you have nothing. If the backing file exists, but
has changed, then the only valid image is what is currently in the backing file. If an
unchanged backing file exists, you have the option to (a) throw away that
/var/lib/libvirt/images/Windows10.qcow2 file and create it anew from that backing file, or
(b) merge the changes that have been made in the /var/lib/libvirt/images/Windows10.qcow2
file back into the backing file. You do the latter with "qemu-img commit
/var/lib/libvirt/images/Windows10.qcow2".
--
Bob Nichols "NOSPAM" is really part of my email address.
Do NOT delete it.