• Retrointernet
Retrointernet
¿Cómo montar ISOs y otros tipos de imágenes en Linux?

¿Cómo montar ISOs y otros tipos de imágenes en Linux?

  • 14 de septiembre de 2018

¿Alguna vez has necesitado acceder al contenido de un archivo de imagen Linux? Quizás olvidaste qué versión de esa distribución de Linux era. Puede haber muchas razones para verificar una imagen, pero ¿cómo seo hace sin necesidad de pasarla a físico? Es muy sencillo, no necesitarás instalarla para acceder a su contenido.

Todos los usuarios expertos de Linux deberían estar familiarizados con el comando mount. Es una parte muy importante de la administración del sistema. Pero, muchos no saben que el comando de montaje es en realidad mucho más poderoso de lo que parece.

Montar archivos de imagen en Linux

Podemos montar rápida y fácilmente, no solo imágenes ISO, sino incluso imágenes de discos con particiones.

Rápidamente, aquí hay un ejemplo de montaje de un archivo ISO.

mount -o loop disk_image.iso /path/to/mount/dir

Aquí el indicador -o es para pasar las opciones de montaje, y en este caso, le estamos diciendo a mount que queremos montar la imagen usando un dispositivo de loopback. Un dispositivo de retroalimentación es un concepto realmente interesante creado para ayudarnos a montar archivos de imagen. Un dispositivo de retroalimentación es un pseudo-dispositivo que actúa como intermediario y permite que el sistema trate el archivo como si fuera un dispositivo de bloque, como una unidad de CD-ROM, disco duro, etc. Al hacerlo, tenemos mucha más flexibilidad cuando tratamos con el archivo, como la realización de funciones del sistema de archivos.

Mount también puede hacer bastante más. Si tenemos un archivo de imagen de un disco duro, podemos llamarlo hdd.img, entonces también podemos montarlo como en el caso anterior, pero... hay un pero...

Si intentamos esto:

mount -o loop hdd.img /path/to/mount/dir

no va a funcionar.

Eso es porque la mayoría de los discos tienen tablas de particiones. Los CD y DVD normalmente no tienen tablas de particiones.

Cuando mount comienza a montar un volumen, espera encontrar un sistema de archivos, no una tabla de particiones.

Sin embargo, eso no significa que no se pueda hacer. Para montar el sistema de archivos, debemos decirle a mount dónde se encuentra la información que necesita dentro de la imagen, se lo indicaremos como un parámetro más. La información que requiere el montaje es el desplazamiento de la partición. Hay varias formas de resolverlo, pero fdisk hace el trabajo por nosotros.

fdisk -l hdd.img

Supongamos que fdisk nos dice que el sector inicial es 200. Lo que tenemos que hacer ahora es tomar ese número de sector y multiplicarlo por el tamaño del sector del HDD de la que se tomó la imagen, lo que probablemente sea 512 bytes en las antiguas y posiblemente 4096 (4K) en las más nuevas. El tamaño del sector es el número de bytes por sector.

Iremos con un tamaño de sector de 512 bytes por simplicidad, y eso nos daría una compensación de 51.200. Este desplazamiento es la cantidad de bytes de la imagen donde se inicia el sistema de archivos. Sabiendo esto, podemos decir exactamente dónde encontrar el sistema de archivos.

mount -o ro, loop, offset = 51200 hdd.img /path/to/mount/dir

En realidad es bastante complicado y sin experiencia la probabilidad de error es alta, debe de haber una manera más sencilla ¿verdad?

Losetup es una herramienta para configurar los dispositivos de loopback. ¿Por qué utilizar losetup si mount parece que lo hace todo? Resulta que mount tiene problemas para montar imágenes de disco y con losetup lo tendremos solucionado.

losetup -f hdd.img

Si todo ha ido bien, el siguiente paso será:

partprobe /dev/loopback0

o

kpartx -u /dev/loopback0

si tiene partprobe o kpartx instalados, respectivamente.

Una vez hecho esto, deberíamos ver algo como /dev/loop0p1 en /dev/. Esta es nuestra partición, que luego puede montar fácilmente.

Y por último:

mount /dev/loop0p1 /path/to/mount/dir

No hemos necesitado loopback.

Sin embargo, podemos hacerlo aún más fácil al agregar un solo indicador a losetup.

losetup -f -P hdd.img

La bandera -P que utilizamos en realidad le dice a losetup que haga que el kernel escanee la tabla de particiones, para que podamos saltarnos al montaje de la partición que queremos.

Usando lo anterior, puede montar una variedad de imágenes de disco. No importa si son de medios ópticos, llaves USB, particiones MBR o GPT. El kernel de Linux puede manejar tantas tablas de particiones y sistemas de archivos diferentes.