[3-JUN-2015] There are three options that modern `qemu-img` supports: (1) 'preallocation=metadata': allocates qcow2 metadata, and it's still a sparse image. $ qemu-img create -f qcow2 -o preallocation=metadata test1-metadata.qcow2 1G Formatting 'test1-metadata.qcow2', fmt=qcow2 size=1073741824 encryption=off cluster_size=65536 preallocation='metadata' lazy_refcounts=off refcount_bits=16 328K -rw-r--r--. 1 root root 1.1G Jun 3 03:20 copy-test1-metadata.qcow2 (2) 'preallocation=full': allocates zeroes and makes a non-sparse image. $ qemu-img create -f qcow2 -o preallocation=full test2-full.qcow2 1G Formatting 'test2-full.qcow2', fmt=qcow2 size=1073741824 encryption=off cluster_size=65536 preallocation='full' lazy_refcounts=off refcount_bits=16 $ ls -lash test2-full.qcow2 1.1G -rw-r--r--. 1 root root 1.1G Jun 3 03:31 test2-full.qcow2 (3) 'preallocation=falloc': which uses posix_fallocate() to "allocate blocks and marking them as uninitialized", and is relatively faster than writing out zeroes to a file: $ qemu-img create -f qcow2 -o preallocation=falloc test3-falloc.qcow2 1G Formatting 'test3-falloc.qcow2', fmt=qcow2 size=1073741824 encryption=off cluster_size=65536 preallocation='falloc' lazy_refcounts=off refcount_bits=16 $ ls -lash test3-falloc.qcow2 1.1G -rw-r--r--. 1 root root 1.1G Jun 3 03:32 test3-falloc.qcow2