¿Has tenido alguna vez la necesidad de comprobar 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 ISO, pero ¿cómo lo haces sin quemarla? Descubramos como
puedes hacerlo, 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 mount es en realidad mucho
más poderoso de lo que aparenta a primera vista.
Montando 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 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, pero ¿quién usa algo más que ISO’s? 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 loopback 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 mount. La
información que requiere mount 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
Usando fdisk
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 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 sea una buena medida). El tamaño del sector es el número de bytes por sector.
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é utilizando, pero cualquier cosa de los últimos cinco años más o menos
no debería tener ningún problema.
Losetup
de la herramienta 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 esa información),
sería mucho más fácil dejar que el sistema las referenciara en su
lugar. Simplemente podemos crear un dispositivo de loopback para toda la
imagen del disco y luego decirle al sistema que busque particiones en el
dispositivo de loopback recién creado.
losetup -f hdd.img
NOTA:
El indicador -f pasado a losetup simplemente
le dice que cree un dispositivo de loopback con un nombre aún no utilizado,
como /dev/loop1 if
/dev/loop0 ya está en uso. Alternativamente,
puedes pasar un nombre de dispositivo /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
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 in /dev/. Esta
es tu partición, que luego puedes montar fácilmente.
mount /dev/loop0p1 /path/to/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? Utiliza 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.
Comenta
otro truco que engrandezca el post. Por favor compártelo en las rede sociales.
Fuente:
Fossbytes