La herramienta kpartx lo hace más fácil. Crea dispositivos de bucle en /dev/mapper para cada partición en su imagen. Luego puede montar el dispositivo de bucle que corresponda con su partición deseada sin tener que calcular el desplazamiento manualmente.
Por ejemplo, para montar la primera partición de la imagen del disco:
kpartx -a -v myimage.disk
mount /dev/mapper/loop0p1 /mnt/myimage
Cuando haya terminado con la imagen, elimine los dispositivos de bucle:
umount /mnt/myimage
kpartx -d -v myimage.disk
Alternativamente, si tiene un kernel reciente y pasa loop.max_part=63 en el arranque (si loop está integrado) o modprobe (si loop es un módulo), entonces puede hacerlo de esta manera:
losetup /dev/loop0 myimage.disk
partprobe /dev/loop0 # Re-read partition table if /dev/loop0 was used with a different image before
mount /dev/loop0p1 /mnt/myimage
Cuando termines con el bucle:
losetup -d /dev/loop0
Encontré esto:
http://www.andremiller.net/content/montaje-de-imagen-de-disco-duro-incluyendo-particiones-usando-linux
que parece exactamente lo que estaba buscando.
Aquí está la parte clave:
mount -o loop,ro,offset=32256 hda.img /mnt/rabbit
donde el valor de offset está en bytes. La forma sugerida de obtener el desplazamiento es señalar parted
en la imagen, luego la unidad B para bytes y tome el valor inicial de la salida de impresión. Como alternativa, suponiendo que tenga espacio en disco, haga lo obvio:una vez que tenga el desplazamiento y el tamaño, simplemente use dd
para extraer cada partición a un archivo separado.
Hoy en día puedes minimizar tu trabajo usando udisks
. Solución de ArchWiki:udisks - Montar dispositivos de bucle
Para montar fácilmente imágenes ISO, use el siguiente comando:
udisksctl loop-setup -r -f image.iso
Esto creará un dispositivo de bucle y mostrará la imagen ISO lista para montar. Una vez desmontado, udev terminará el dispositivo de bucle.
-r
allí para la opción de solo lectura.