kernel de linux 4.10
HAVE alguna vez necesita para comprobar el contenido de un archivo de imagen? Tal vez usted olvidó qué versión de esa distribución de Linux era. Puede haber muchas razones para volver a verificar una imagen, pero ¿cómo hacer eso sin quemarla? Averigüemos, no se requiere software adicional.
Todo usuario de Linux con conocimientos técnicos debe estar familiarizado con el  comando mount . Es una parte muy importante de la administración general del sistema. Pero, muchos no saben que el  comando de montaje es en realidad mucho más poderoso que aparente a primera vista.

Montaje de 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 decimos al  montaje que queremos montar la imagen usando un  dispositivo de bucle invertido . Un dispositivo de bucle invertido es un concepto realmente bueno desarrollado para asistir en el montaje de archivos de imagen. Un dispositivo de bucle invertido es un pseudo-dispositivo de software que actúa como un intermediario y permite que el sistema trate el archivo como si fuera un dispositivo de bloque, como una unidad de CD-ROM, un disco duro, etc. Al hacerlo, tenemos mucha más flexibilidad cuando manejamos con el archivo, como realizar funciones del sistema de archivos  (que asumen que hay un dispositivo de bloque subyacente) .
Eso es genial, pero ¿quién usa ISO más, verdad? Bueno, el  monte puede hacer un poco más, también. Si tiene un archivo de imagen de un disco duro (como se obtiene de dd o algo similar), llamémoslo hdd.img , entonces también puedes montar los sistemas de archivos dentro de él. Y si sospecha que necesitamos usar un dispositivo de bucle invertido nuevamente, está en el camino correcto.
Pero si intentas esto ...
mount -o loop hdd.img / path / to / mount / dir
No vas a tener mucha suerte.
Eso es porque la mayoría de los discos tienen tablas de partición . Los CD y DVD no suelen tener tablas de particiones porque no se adaptan a sus casos de uso. Cuando el  montaje comienza a montar un volumen, espera encontrar un sistema de archivos, no una tabla de partición.
Sin embargo, eso no significa que no se pueda hacer. Para montar el sistema de archivos, tenemos que decirle a  mount dónde se encuentra dentro del archivo de imagen con una información que se pasa a las opciones de montaje. La información que  necesita el montaje es el desplazamiento de la partición, es decir, el número de bytes en el archivo de imagen donde se inicia la partición  Hay varias formas de averiguarlo, pero  fdisk hace el trabajo por usted.
fdisk -l hdd.img
Supongamos que  fdisk nos dice que el sector inicial es 100  (esto es solo un ejemplo, es muy improbable que esto sea correcto en su caso específico) . Lo que tenemos que hacer ahora es tomar ese número de sector y multiplicarlo por el tamaño de sector del HDD del que se tomó la imagen, esto será  (lo más probable) 512 bytes en unidades más antiguas y posiblemente 4096  (4K)  en las más nuevas, pero siempre debe verificar esto al clonar unidades  (tal vez ponerlo en el nombre del archivo para una buena medida) . El tamaño del sector es el número de bytes por sector.
Iremos con un tamaño de sector de 512 bytes para simplificar, y eso nos daría un desplazamiento de 51,200. Este desplazamiento es el número de bytes en la imagen donde se inicia el sistema de archivos. Sabiendo esto, podemos decirle al  montaje exactamente dónde encontrar el sistema de archivos.
mount -o ro, loop, offset = 51200  hdd.img / path / to / mount / dir
NOTA: También he agregado la  opción ro en este ejemplo para mostrar cómo se puede montar un sistema de archivos como de solo lectura. Esto es especialmente útil en aplicaciones forenses en las que no puede perturbar la integridad de los datos por motivos de seguridad o incluso legales. A menudo, un archivo de imagen se creará desde el disco con un adaptador especial llamado bloqueador de escritura que bloquea literalmente todos los comandos de escritura y solo permite comandos de lectura.
Eso es bastante trabajo con las matemáticas y todo eso, pero debe haber una manera más fácil, ¿verdad? Eso depende de qué tan reciente sea la distribución de Linux que esté utilizando, pero cualquier cosa de los últimos cinco años no debería tener ningún problema.
La herramienta de  reparación es para configurar dispositivos de bucle invertido. Podría preguntarse por qué desea configurar un dispositivo de bucle de retorno manualmente cuando el  montaje se encarga de todo eso por usted. ¿Recuerda que el montaje no quiso montar toda la imagen de disco debido a esa molesta tabla de particiones? Bueno, dado que la tabla de particiones es lo que contiene todas las matemáticas acerca de dónde se ubican las particiones  (donde fdisk obtiene toda su información) , sería mucho más fácil dejar que el sistema haga referencia a ella. Simplemente podemos crear un dispositivo de bucle invertido para toda la imagen del disco y luego indicar al sistema que busque particiones en el dispositivo de bucle creado recientemente.
losetup -f hdd.img
NOTA: el  indicador -f que se pasa a  losetup simplemente le dice que cree un dispositivo de bucle invertido con un nombre que aún no se usa, como / dev / loop1 si / dev / loop0 ya está en uso . Alternativamente, puede pasar un nombre de dispositivo como  / dev / loop0 , si ese dispositivo no existe,  losetup lo creará, si lo hace, lo reasignará al archivo de imagen recién designado.
Si el comando es exitoso, verá el dispositivo de bucle de retorno creado recientemente en  / dev / . Ahora, puedes usar
partprobe / dev / loopback0
o
kpartx -u / dev / loopback0
si tiene  instalado partprobe o  kpartx , respectivamente. Sin embargo,  parted debe instalarse en la mayoría de las distribuciones modernas de Linux.
Una vez hecho esto, deberías ver algo como  / dev / loop0p1 en  / dev / . Esta es su partición, que luego puede montar fácilmente.
mount / dev / loop0p1 / path / to / mount / dir
Como probablemente se dará cuenta, no se requiere loopback. Eso es porque ya nos hemos ocupado de eso.
Sin embargo, podemos hacer esto aún más fácil, agregando una sola bandera a  losetup.
losetup -f -P hdd.img
El  indicador -P que usamos en realidad le dice a  losetup que el kernel escanee la tabla de particiones, por lo que podemos saltar a montar la partición que deseamos.
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 partición y sistemas de archivos diferentes, tendrá más dificultades para encontrar algo que no admita.
Claro, puede haber herramientas que lo hagan mucho más fácil, pero ¿dónde está la diversión en eso? He utilizado estas técnicas en la recuperación de datos y en la administración general del sistema y, como cualquier otro tipo de conocimiento, es extremadamente valioso cuando es necesario.