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