Montar imagen qcow para explorar su contenido

Tenemos una imagen creada con qemu-img, con formato qcow ó qcow2 (que hemos usado en qemu/kvm). Queremos sacar archivos de la misma sin tener que arrancar la máquina virtual.

Una solución sencilla es ésta.

1.- Convertimos la imagen qcow a formato raw (así se puede luego montar más fácilmente luego):

qemu-img convert -o raw IMAGEN_A_CONVERTIR.qcow IMAGEN_CONVERTIDA.img

2.- Tenemos la imagen en formato raw. Con la utilidad disktype podemos ver qué particiones tiene y dónde están (lo que hace es mirar la tabla de particiones de dicha imagen).

 

[20:21:53 root user]# disktype vm1.img
--- vm1.img
Regular file, size 8 GiB (8589934592 bytes)
DOS/MBR partition map
Partition 1: 7.608 GiB (8169455616 bytes, 15955968 sectors from 2048, bootable)
 Type 0x83 (Linux)
 Ext3 file system
 UUID 2A6FB4D5-F393-4F9F-94FC-8D8A46F23D57 (DCE, v4)
 Last mounted at "/"
 Volume size 7.608 GiB (8169455616 bytes, 1994496 blocks of 4 KiB)
Partition 2: 398.0 MiB (417334272 bytes, 815106 sectors from 15960062)
 Type 0x05 (Extended)
 Partition 5: 398 MiB (417333248 bytes, 815104 sectors from 15960062+2)
 Type 0x82 (Linux swap / Solaris)
 Linux swap, version 2, subversion 1, 4 KiB pages, little-endian
 Swap size 398.0 MiB (417325056 bytes, 101886 pages of 4 KiB)

3.-  usamos kpartx para crear un mapeo de las distintas particiones a ficheros de dispositivo de nuestro GNU/Linux. De esta forma podemos montar cada una de ellas manualmente.

[20:08:44 root amms]# kpartx -v -a vm1.img 
add map loop0p1 (252:0): 0 15955968 linear /dev/loop0 2048
add map loop0p2 (252:1): 0 815106 linear /dev/loop0 15960062
add map loop0p5 : 0 815104 linear 252:1 2

4.- Ahora ya podemos montar la imagen en un directorio de esta forma:

mount -t ext3 /dev/mapper/loop0p1 /mnt/temp

Ahora ya podéis acceder a los archivos que tenéis en dicha partición para leerlos, copiarlos, etc.

Para que esto os funcione, necesitáis tener instaladas las utilidades qemu-utils, disktype y kpartx (con aptitude, apt-get, yaourt, yum… dependiendo de la distro que uséis).