Linux KVM: La forma más rápida de montar una imagen de disco

En alguna oportunidad, necesitamos montar una imagen de disco (formato qcow) de KVM o de HVM (Xen) para poder acceder a los archivos contenidos allí dentro, pero la cosa no era tarea fácil (calcular el offset del sector de la geometría de la partición, hacer el losetup, etc); la forma más rápida es usando kpartx.

Kpartx es una aplicación cónsola (parte de los multipath-tools por cierto) que permite crear automáticamente los device mappings (dispositivos en /dev) de cualquier dispositivo de bloque.

Instalando kpartx

Aunque lo podemos instalar junto con los multipath-tools, lo podemos instalar de manera independiente:

aptitude install kpartx

Usando kpartx con KVM/HVM

Hemos creado una máquina virtual con KVM/HVM, la misma está en un archivo de imagen ó en un dispositvo LVM, para mapear todas las particiones de dicha imagen KVM como dispositivos de bloque, simplemente ejecutamos:

kpartx -a /dev/mapper/vgVM-maquina1

Siendo /dev/mapper/vgVM-maquina1 el volumen lógico donde está la máquina virtual, si está en un archivo en disco, sería:

kpartx -a /srv/kvm/maquina1/disk1.img

Esto nos agregará una serie de dispositivos de bloque llamados igual qué el volumen original pero agregando las particiones lógicas, ejemplo:

/dev/mapper/vgVM-maquina1p1 (primera partición)

/dev/mapper/vgVM-maquina1p2 (segunda partición)

/dev/mapper/vgVM-maquina1p3 (tercera partición)

Y así suscesivamente.

Montando la partición

Para montar simplemente utilizamos el comando mount:

mount -o rw /dev/mapper/vgVM-maquina1p1 /mnt

En nuestro caso, hicimos el montaje en /mnt.

Borrando el mapa de particiones de la imagen

Si ya hicimos uso de la partición y deseamos eliminar el “mapa” de dichas particiones en nuestra lista de dispositivos de bloque, simplemente ejecutamos:

kpartx -d /dev/mapper/vgVM-maquina1

Y se eliminarán todas las referencias (mapping) de particiones de la imagen (NOTA: no se borrarán las particiones).

Otros usos de Kpartx

Si queremos ver qué particiones posee una imagen KVM/HVM (solo listarlas, no las agrega al listado de particiones disponibles):

kpart -l /dev/mapper/vgVM-maquina1

Si durante el proceso de una imagen KVM ya agregada con *-a* decidimos crear una nueva partición, podemos ejecutar simplemente:

kpartx -u

Y se actualizarán todos los identificadores de dispositivos de bloque de todas las imagenes listadas.

Anuncios

3 comentarios sobre “Linux KVM: La forma más rápida de montar una imagen de disco

    1. Ya kpartx crea los loop devices, de hecho, es una manera más rápida que tener qué analizar el dispositivo, calcular los offsets de cada partición y crear manualmente los losetup, al menos kpartx es un proceso mucho más rápido.
      Saludos!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s