linux-kernel-4-10

¿Alguna vez has necesitado verificar el contenido de un archivo de imagen? Quizás olvidaste qué versión de esa distribución de Linux era esa. Puede haber muchas razones para verificar dos veces una imagen, pero ¿cómo hacerlo sin quemarla? Descubrámoslo, no se requiere software adicional.

Todos los usuarios expertos de Linux deberían estar familiarizados 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.

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 loopback (retroalimentación) es un concepto realmente agradable desarrollado para ayudar a montar archivos de imagen. Un dispositivo de retroalimentación es un pseudo-dispositivo de software 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 (que suponen que hay un dispositivo de bloque subyacente).

Eso es genial. Bueno, mount también puede hacer bastante más. Si tienes un archivo de imagen de un disco duro (como se obtiene de dd o algo similar), podemos llamarlo hdd.img, entonces también puedes montar los sistemas de archivos dentro de él. Y si sospechas que necesitamos usar un dispositivo de retroalimentación de nuevo, estás 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 particiones. Los CD y DVD normalmente no tienen tablas de particiones porque no se ajustan a sus casos de uso. 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 está dentro del archivo de imagen con una información pasada a las opciones de montaje. La información que requiere el montaje es el desplazamiento de la partición, es decir, el número de bytes en el archivo de imagen donde comienza la partición. Hay varias formas de resolverlo, pero fdisk hace el trabajo por ti.

fdisk -l hdd.img

Supongamos que fdisk nos dice que el sector inicial es 100 (esto es solo un ejemplo, es altamente improbable que esto sea correcto en tu caso específico). Lo que tenemos que hacer ahora es tomar ese número de sector y multiplicarlo por el tamaño del sector de la HDD de la que se tomó la imagen, lo que probablemente sea 512 bytes en unidades anteriores y posiblemente 4096 (4K) en las más nuevas. pero siempre debes 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 por simplicidad, y eso nos daría una compensación de 51.200. Este desplazamiento es la cantidad de bytes en 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

NOTA: He agregado la opción ro en este ejemplo para mostrar cómo puedes montar un sistema de archivos como de solo lectura. Esto es especialmente útil en aplicaciones forenses donde no se puede alterar la integridad de los datos por cuestiones de seguridad, o incluso legales. A menudo, se creará un archivo de imagen desde el disco utilizando un adaptador especial llamado bloqueador de escritura que literalmente bloquea todos los comandos de escritura y solo permite comandos de lectura.

Eso es bastante trabajo con las matemáticas y todo, pero debe haber una manera más fácil, ¿verdad? Eso depende de cuán reciente sea la distribución de Linux que estés utilizando, pero cualquier cosa de los últimos cinco años más o menos no debería tener ningún problema.

La herramienta losetup es para configurar los dispositivos de loopback. Puede que te preguntes por qué deseas configurar manualmente un dispositivo de retroalimentación cuando mount se ocupa de todo eso por ti. ¿Recuerdas que mount no quería montar toda la imagen del disco debido a esa molesta tabla de particiones? Bueno, dado que la tabla de particiones es lo que contiene todas las matemáticas sobre dónde se ubican las particiones (donde fdisk obtiene toda su información), sería mucho más fácil dejar que el sistema las referenciara en su lugar. Simplemente podemos crear un dispositivo de bucle invertido para toda la imagen del disco y luego decirle al sistema que busque particiones en el dispositivo de bucle invertido recién creado.

losetup -f hdd.img

NOTA: El indicador -f pasado a losetup simplemente le dice que cree un dispositivo de bucle invertido con un nombre aún no utilizado, como /dev/loop1 si /dev/loop0 ya está en uso. Alternativamente, puedes 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 nombrado.

Si el comando es exitoso, verás el dispositivo de loopback recién creado en /dev/. Ahora, puedes usar

partprobe /dev/loopback0

o bien ..

kpartx -u /dev/loopback0

si tienes partprobe o kpartx instalados, respectivamente. Sin embargo, parted debería instalarse en la mayoría de las distribuciones Linux modernas.

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

mount /dev/loop0p1 /ruta/ a /mount/dir

Como probablemente notarás, no se requiere loopback. Eso es porque ya nos ocupamos de eso.

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

losetup -f -P hdd.img

El indicador -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, puedes 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, que te resultará más difícil encontrar algo que no sea compatible.

Claro, puede haber herramientas que hacen esto mucho más fácil, pero ¿dónde está la diversión en eso? Utilicé estas técnicas en la recuperación de datos y la administración general del sistema y, como cualquier tipo de conocimiento, es extremadamente valioso cuando es necesario.

 

Fuente: Original | maslinux

¿Quién está en línea?

Hay 12970 invitados y ningún miembro en línea