"qemu-img convert -O qcow2 -o backing_file" makes huge images $ dd if=/dev/urandom bs=1M of=1.img count=4 4+0 records in 4+0 records out 4194304 bytes (4,2 MB) copied, 1,0413 s, 4,0 MB/s $ qemu-img create -f qcow2 -b 1.img 2.img Formatting '2.img', fmt=qcow2 size=4194304 backing_file='1.img' encryption=off cluster_size=0 $ qemu-img convert -O qcow2 -o backing_file=1.img 2.img 3.img $ du -h ?.img 4,1M 1.img 144K 2.img 4,3M 3.img The conversion result is bigger then the source! It appears that "-o backing_file" is not applied to data (as expected). I.e. all data is put into the resulting image: both from source image and "backing" image. Expected behavior is to put only data that is not present in backing_file. It is possible to chain backing files. As a workaround you could do the following: $ qemu-img create -f qcow2 -b 2.img 4.img # from now on don't modify 2.img, instead use 4.img $ qemu-img create -f qcow2 -b 2.img 3.img # here is the 3.img you tried to create with qemu-convert Images 1.img and 2.img should never be modified, they are immutable snapshots. Images 3.img and 4.img can be modified and will contain only changes against 2.img. Perhaps qemu-img needs a command to drop data that is duplicated in the base image. This could be a new flag to commit: qemu-img commit --dedup 3.img. Do you confirm this as a bug? Sorry I'm not a frequent Launchpad user and will leave it up to someone more familiar to decide which status to place it in. On Thu, Oct 14, 2010 at 1:26 PM, Anthony Liguori