Montar archivos de imagen con loop devices

Las alternativas para montar imágenes directamente desde su archivo, sin necesidad de grabarlos en un CD o pendrive, pasan por el uso de los (pseudo)dispositivos loop. A continuación incluyo las recetas que utilizo más frecuentemente.

Imágenes con una única partición

Cuando la imagen contiene una única partición, como ocurre en el caso de las imágenes .iso originalmente destinadas para su grabación en un CD, la alternativa más práctica pasa por el uso del comando losetup ya que realiza la gestión de los dispositivos loop de forma dinámica.

Montaje

Como ejemplo, partimos de una imagen netinst de Debian que hemos descargado en el fichero /tmp/debian-9.3.0-amd64-netinst.iso.

El comando para asociar un dispositivo loop a esta imagen es:

# losetup -f /tmp/debian-9.3.0-amd64-netinst.iso

Para ver cuál es el dispositivo loop asignado a este imagen:

# losetup -l
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0         0      0         0  0 /tmp/debian-9.3.0-amd64-netinst.iso

Donde claramente puede observarse que el dispositivo asociado a esa imagen es /dev/loop0.

Por lo tanto, para montar esta imagen desde su archivo y explorar su contenido:

# mount /dev/loop0 /mnt/
mount: /dev/loop0 is write-protected, mounting read-only
# ls /mnt/
autorun.inf  doc        install      pool                 README.txt
boot         efi        install.amd  README.html          setup.exe
css          firmware   isolinux     README.mirrors.html  tools
debian       g2ldr      md5sum.txt   README.mirrors.txt   win32-loader.ini
dists        g2ldr.mbr  pics         README.source

Desmontaje

Para deshacer las operaciones de montaje y liberar el dispositivo loop asociado, la secuencia de comandos a seguir es:

# umount /mnt
# losetup -d /dev/loop0

Imágenes con estructura de particiones

Cuando la imagen contiene un particionado interno, como es el caso de imágenes de arranque vía U-Boot o de discos duros completos, resulta más conveniente utilizar el comando kpartx, que automáticamente se encarga de leer la tabla de particiones y asignar un dispositivo loop específico para cada partición.

Montaje

Supongamos el caso de una imagen /tmp/raspbian-jessie.img. Para asociar dispositivos loop a cada partición el comando es:

# kpartx -v -a /tmp/raspbian-jessie.img 
add map loop0p1 (252:0): 0 114688 linear 7:0 8192
add map loop0p2 (252:1): 0 8325120 linear 7:0 122880

Y para montar la segunda partición de la imagen:

# mount /dev/mapper/loop0p2 /mnt/
# ls /mnt
bin   dev  home  lost+found  mnt  proc  run   srv  tmp  var
boot  etc  lib   media       opt  root  sbin  sys  usr

Nótese que los dispositivos asociados a las particiones se generan dentro del directorio /dev/mapper.

Desmontaje

Para deshacer las operaciones de montaje y liberar los dispositivos loop asociados, la secuencia de comandos a seguir es:

# umount /mnt 
# kpartx -d /tmp/raspbian-jessie.img 
loop deleted : /dev/loop0

José Administrator
Apasionado por el software, la electrónica y la fotografía.
follow me

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *