Convertir imagenes vmdk, raw, qcow2, vdi y vpc con qemu-img

La herramienta de línea de comandos qemu-img permite manipular y convertir varios formatos de imagen de disco (vmdk, raw, qcow2, vdi y vpc), utilizados principalmente por sistemas de virtualización como VMware, KVM, Xen, Virtualbox o Hyper-V.

El funcionamiento es realmente sencillo, lo primero que debemos revisar es que la herramienta está instalada. En caso contrario, podemos instalarla desde yum, apt, etc:

# whereis qemu-img
qemu-img: /usr/bin/qemu-img /usr/share/man/man1/qemu-img.1.gz
# yum info qemu-img
[...]
Available Packages
Name        : qemu-img
Arch        : x86_64
Epoch       : 2
Version     : 0.12.1.2
Release     : 2.445.el6
Size        : 793 k
Summary     : QEMU command line tool for manipulating disk images
URL         : http://www.linux-kvm.org
License     : GPLv2+ and LGPLv2+ and BSD
Description : This package provides a command line tool for manipulating disk images

A la hora de hacer la conversión, simplemente tenemos que tener en cuenta el formato e imagen de disco origen y destino. Si no especificamos el formato de origen (-f ) qemu-img intenta detectarlo de forma automática. El formato destino se especifica con -O y seguido la imagen de origen y destino.

El siguiente ejemplo convierte una imagen de disco de formato qcow2 (KVM) a vmdk (VMware):

# qemu-img convert -f qcow2 -O vmdk imagen_origen.qcow2 imagen_destino.vmdk

Otro ejemplo en el que convertimos de imagen raw (.img) a qcow2:

# qemu-img convert -f raw -O qcow2 image_origen.img imagen_destino.qcow2

Una vez que tenemos la imagen convertida, por ejemplo a vmdk, tendríamos que crear una nueva máquina virtual y en el proceso de creación asignarle el disco .vmdk que hemos creado con la conversión («Use an existing virtual disk»).

Existen otras opciones interesantes como activar la compresión para la imagen de destino (sólo en qcow):

# qemu-img convert -c -f raw -O qcow2 disco_virtual.img disco_virtual_destino.qcow2

Podéis echar un vistazo a la página man para revisarlas:

$ man qemu-img