Montar un fichero qcow2 en Linux

󰃭 2022-03-27 (updated: 2022-03-27 )

Hoy vamos a hacer algo sencillo pero que siempre se me olvida como se hace cuando más lo necesito, montar un volumen qcow2 de una máquina virtual para obtener alguno fichero o información que se encuentra dentro.

Activar el modulo NBD

Lo primero es cargar el módulo NBD que nos permitirá conectar el fichero qcow2 como un dispositivo de disco más del sistema.

{% highlight bash %}

igalvit@server:/vms/kvm$ sudo modprobe nbd max_part=8

{% endhighlight %}

Montar el fichero qcow2

Una vez que ya tenemos el módulo cargado tenemos que conectar el fichero qcow2, en mi caso se trata de un disco virtual de una máquina CentOS 7.

{% highlight bash %}

igalvit@server:/vms/kvm$ sudo qemu-nbd –connect=/dev/nbd0 /vms/kvm/centos7.qcow2

{% endhighlight %}

Ver las particiones disponibles

En este punto ya hemos montado el disco pero no sabemos qué contiene, así que vamos a visualizarlo para posteriormente elegir la partición que nos interesa.

{% highlight bash %}

igalvit@server:/vms/kvm$ sudo fdisk /dev/nbd0 -l Disco /dev/nbd0: 20 GiB, 21474836480 bytes, 41943040 sectores Unidades: sectores de 1 * 512 = 512 bytes Tamaño de sector (lógico/físico): 512 bytes / 512 bytes Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes Tipo de etiqueta de disco: dos Identificador del disco: 0x000a1f9c

Dispositivo Inicio Comienzo Final Sectores Tamaño Id Tipo /dev/nbd0p1 * 2048 2099199 2097152 1G 83 Linux /dev/nbd0p2 2099200 41943039 39843840 19G 8e Linux LVM

{% endhighlight %}

Montar la partición

En nuestro caso se trata de un volumen LVM por lo que lleva un poco más de trabajo del habitual.

{% highlight bash %}

igalvit@server:/vms/kvm$ sudo vgscan Found volume group “centos_centos7” using metadata type lvm2 Found volume group “ubuntu_vg” using metadata type lvm2

igalvit@server:/vms/kvm$ sudo vgchange -ay centos_centos7 2 logical volume(s) in volume group “centos_centos7” now active

igalvit@server:/vms/kvm$ sudo lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root centos_centos7 -wi-a—– <17,00g
swap centos_centos7 -wi-a—– 2,00g
root ubuntu_vg -wi-ao—- 921,00g
swap ubuntu_vg -wi-ao—- <9,28g

igalvit@server:/vms/kvm$ sudo mount /dev/centos_centos7/root /mnt -o ro,user

{% endhighlight %}

Visualizar el contenido de un fichero

Como esto es una prueba no vamos a hacer nada complicado, simplemente vamos a visualizar el fichero de la versión de la distribución de CentOS instalada.

{% highlight bash %}

igalvit@server:/vms/kvm$ cd /mnt

igalvit@server:/mnt$ ls bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr

igalvit@server:/mnt$ cat etc/redhat-release CentOS Linux release 7.9.2009 (Core)

{% endhighlight %}

Desmontarlo todo

Una vez terminada la tareas ha llegado la hora de recoger velas.

{% highlight bash %}

igalvit@server:/$ sudo umount /mnt

igalvit@server:/$ sudo vgchange -an centos_centos7 0 logical volume(s) in volume group “centos_centos7” now active

igalvit@server:/$ sudo qemu-nbd –disconnect /dev/nbd0 /dev/nbd0 disconnected

{% endhighlight %}

Y con esto damos por finalizado este artículo.


Ingrese la dirección de su instancia