How to create a qcow2 file that is not thin provisioned?
Solution 1
You can use the preallocation
option.
qemu-img create -o preallocation=full -f qcow2 /var/lib/libvirt/images/urb-dat0.qcow2 10G
Reference: https://linux.die.net/man/1/qemu-img
Preallocation mode (allowed values: off, metadata, full). An image with preallocated metadata is initially larger but can improve performance when the image needs to grow. Full preallocation additionally writes zeros to the whole image in order to preallocate lower layers (e.g. the file system containing the image file) as well. Note that full preallocation writes to every byte of the virtual disk, so it can take a long time for large images.
Solution 2
An existing thin-provisioned qcow2 file can be converted to a fully allocated one like this:
qemu-img convert -p -f qcow2 -O qcow2 -S 0 original-file.qcow2 new-file.qcow2
(This is not an answer to the question but might still be of interest.)
Related videos on Youtube
Jasmine Lognnes
Updated on September 18, 2022Comments
-
Jasmine Lognnes almost 2 years
When I do the below then the qcow2 file is less than 200KB.
# qemu-img create -f qcow2 /var/lib/libvirt/images/urb-dat0.qcow2 10G # du -hsc /var/lib/libvirt/images/urb-dat0.qcow2 196K /var/lib/libvirt/images/urb-dat0.qcow2
If I attach it to a KVM guest and
fdisk -l
Disk /dev/vdb: 0 MB, 197120 bytes, 385 sectors
Question
How to make a 10GB qcow2 file that is not thin provisioned?
-
Jasmine Lognnes about 7 yearsThat worked =) What is the purpose of the thin provisioned qcow2 file when it can't be used for a filesystem inside a guest?
-
David Corsalini about 7 years@JasmineLognnes what makes you think you can't use a thin provisioned file for a guest FS?
-
Jasmine Lognnes about 7 yearsFrom the output I got from
fdisk -l
and I even tried to domkfs.btrfs /dev/vdb
which failed. -
Jasmine Lognnes about 7 yearsI may have attached the qcow2 images as raw, which could explain why it didn't worked...