jueves, abril 10, 2014

Convertir una imagen VMWARE a formato RAW para usar en Proxmox

Hace unos días tuve la necesidad de usar el disco duro virtual de una máquina virtual de vmware en un entorno de virtualización Proxmox. El formato de disco que utiliza vmware es VMDK, pero Proxmox no permite su uso de manera nativa. Hay que convertirlo a formato RAW. Este formato sería el equivalente a una imagen exacta si dicha máquina virtual se hubiese instalado en un disco físico.

Para realizar dicha conversión se usa una de las utilidades de qemu, qemu-img que permite convertir la imagen entre distintos formatos. La conversión se lleva a cabo en los siguientes pasos

gunzip imagen.vmdk.gz # Sólo si la imagen está comprimida con gzip
qemu-img convert -O raw imagen.vmdk imagen.raw # -O especifica el formato de conversión

Una vez que termine el proceso, el fichero imagen.raw tendrá una imagen de disco equivalente a la información que estaba almacenada en la vmware, y podrá usarse en una máquina virtual definida en Proxmox

Como curiosidad, una imagen de este tipo puede montarse a través del loopback de Linux. Sólo hay que ver donde empieza cada partición y de qué tipo es. Puede obtenerse dicha información con el comando fdisk

fdisk -l imagen.raw
 
Disk imagen.raw: 1073.7 GB, 1073741824000 bytes
255 heads, 63 sectors/track, 130541 cylinders, total 2097152000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000de2fb

Device      Boot      Start         End      Blocks   Id  System
imagen.raw1   *        2048  2012336127  1006167040   83  Linux

Puede verse de la salida del fdisk cual es el sector donde empieza la partición , 2048 y que el tamaño de cada sector es de 512 bytes. Por tanto, el offset en bytes donde empieza la partición es 2048 * 512 = 1048576 . Se puede montar dicha partición en Linux con

mount -o loop,offset=1048576 imagen.raw /mnt

No hay comentarios: