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.