qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] qemu-img create doesn't always replace the existing file


From: Richard W.M. Jones
Subject: [Qemu-devel] qemu-img create doesn't always replace the existing file
Date: Tue, 8 Nov 2016 10:58:40 +0000
User-agent: Mutt/1.5.20 (2009-12-10)

When using 'qemu-img create', if the file being created already
exists, then qemu-img tries to read it first.  This has some
unexpected effects:


$ rm test.qcow2 
$ qemu-img create -f qcow2 -o compat=1.1,preallocation=off test.qcow2 1G
Formatting 'test.qcow2', fmt=qcow2 size=1073741824 compat=1.1 encryption=off 
cluster_size=65536 preallocation=off lazy_refcounts=off refcount_bits=16
$ du -sh test.qcow2 
196K test.qcow2


$ rm test.qcow2 
$ qemu-img create -f qcow2 -o compat=1.1,preallocation=falloc test.qcow2 1G
Formatting 'test.qcow2', fmt=qcow2 size=1073741824 compat=1.1 encryption=off 
cluster_size=65536 preallocation=falloc lazy_refcounts=off refcount_bits=16
$ qemu-img create -f qcow2 -o compat=1.1,preallocation=off test.qcow2 1G
Formatting 'test.qcow2', fmt=qcow2 size=1073741824 compat=1.1 encryption=off 
cluster_size=65536 preallocation=off lazy_refcounts=off refcount_bits=16
$ du -sh test.qcow2 
256K test.qcow2            # would expect this to be the same as above


$ rm test.qcow2 
$ mkfifo test.qcow2
$ qemu-img create -f qcow2 -o compat=1.1 test.qcow2 64M
Formatting 'test.qcow2', fmt=qcow2 size=67108864 compat=1.1 encryption=off 
cluster_size=65536 lazy_refcounts=off refcount_bits=16
qemu-img: test.qcow2: Could not resize file: Invalid argument


Is this a bug or is my understanding of 'qemu-img create' wrong?

Currently libguestfs uses 'qemu-img create' to create empty files.
However we don't unlink the target file first.  Should we be doing that?


Tested with:

qemu-img-2.6.0-3.fc24.x86_64
qemu-img-2.7.0-1.fc25.x86_64

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine.  Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]