Hoy he estado modificando tamaños de imágenes qcow2 y he dejado un imagen corrupta, pues bien hay solución.
Al querer abrir la imagen me daba este error indicando que esta corrupta.
qemu-img: Could not open 'test-i386.qcow2': qcow2: Image is corrupt; cannot be opened read/write
Para solucionarlo primero analizaremos la situación
file test-i386.qcow2
test-i386.qcow2: QEMU QCOW Image (v3), 12884901888 bytes
qemu-img info test-i386.qcow2
image: test-i386.qcow2
file format: qcow2
virtual size: 12G (12884901888 bytes)
disk size: 11G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: true
Hacemos un check
qemu-img check test-i386.qcow2
No errors were found on the image.
179022/196608 = 91.06% allocated, 3.54% fragmented, 0.00% compressed clusters
Si viésemos que no funciona, en mi caso no funcionaba ejecutamos el siguiente comando.
qemu-img check -r all test-i386.qcow2
No errors were found on the image.
179022/196608 = 91.06% allocated, 3.54% fragmented, 0.00% compressed clusters
Image end offset: 11734548480
Ahora continuo haciendo lo que quería hacer reducir pero antes ampliare la imagen (4 veces).
qemu-img resize test-i386.qcow2 +2G
Image resized.
qemu-img resize test-i386.qcow2 +2G
Image resized.
qemu-img resize test-i386.qcow2 +2G
Image resized.
qemu-img resize test-i386.qcow2 +2G
Image resized.
qemu-img info test-i386.qcow2
image: test-i386.qcow2
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 11G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: true
Ahora pasamos de qcow2 a raw para luego poder reducir
qemu-img convert -O raw test-i386.qcow2 VM1.raw
Una vez pasado a raw
-rw-r--r-- 1 root root 11734548992 jun 25 10:23 test-i386.qcow2
-rw-r--r-- 1 root root 21474836480 jun 25 10:27 VM1.raw
Reduzco
qemu-img resize VM1.raw -8G
Image resized.
así queda pues
-rw-r--r-- 1 root root 11734548992 jun 25 10:23 test-i386.qcow2
-rw-r--r-- 1 root root 12884901888 jun 25 10:51 VM1.raw
Lo volvemos a convertir a qcow2
qemu-img convert -c -O qcow2 VM1.raw test-i386.qcow2
Se a reducido mucho el tamaño de la imagen
-rw-r--r-- 1 root root 5369626624 jun 25 10:59 test-i386.qcow2
-rw-r--r-- 1 root root 12884901888 jun 25 10:51 VM1.raw
Comprobamos que todo sea correcto
qemu-img info test-i386.qcow2
image: test-i386.qcow2
file format: qcow2
virtual size: 12G (12884901888 bytes)
disk size: 5.0G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
Por si quedan dudas la imagen se va incrementando tal i como podéis observar
-rw-r--r-- 1 libvirt-qemu libvirt-qemu 5394399232 jun 25 11:23 test-i386.qcow2
-rw-r--r-- 1 root root 12884901888 jun 25 10:51 VM1.raw