¿Cómo montar una partición desde un archivo de imagen que contiene múltiples particiones en Linux?

StackOverflow https://stackoverflow.com/questions/1419489

Pregunta

El archivo de imagen tiene una tabla de particiones y contiene varias particiones.

los dispositivos de bucle invertido pueden ser una posibilidad.

Temas relacionados:

¿Fue útil?

Solución

Digamos que $ IMAGE está configurado en la ruta a su archivo de imagen. Puede escribir un pequeño script usando

fdisk -u sectors -l $IMAGE

para obtener una lista de particiones dentro de la imagen. Y luego use una secuencia de

mount -o ro,loop,offset=$OFFSET -t auto $IMAGE /media/$DEST

Donde se calcula el desplazamiento significa la información de fdisk (sector de inicio * tamaño de un sector en bytes) y $ DEST un nombre único para cada una de las particiones.

Esa no es directamente la solución, pero espero una buena indicación sobre cómo realizarla. ¡Si hace el trabajo una vez, tiene un pequeño comienzo agradable para un conjunto de herramientas forenses! & # 8203; & # 8203; & # 8203; & # 8203; & # 8203; & # 8203; & # 8203; & # 8203 ; & # 8203; & # 8203; & # 8203; & # 8203; & # 8203; & # 8203; & # 8203; & # 8203; & # 8203; & # 8203; & # 8203; & # 8203; & # 8203;

Otros consejos

Puede hacerlo así, sin mucha molestia:

# kpartx -v -a logging-test.img 
add map loop0p1 (251:0): 0 497664 linear /dev/loop0 2048
add map loop0p2 (251:1): 0 66605058 linear /dev/loop0 501758
add map loop0p5 (251:2): 0 66605056 251:1 2
# ls /dev/mapper/
control  loop0p1  loop0p2  loop0p5
# mount /dev/mapper/loop0p1 /mnt/test
# mount  | grep test
/dev/mapper/loop0p1 on /mnt/test type ext2 (rw)
#

Y para eliminar el dispositivo de bucle una vez que haya terminado:

# kpartx -v -d logging-test.img
del devmap : loop0p2
del devmap : loop0p1
loop deleted : /dev/loop0
#

Si tiene util-linux v2.21 o superior, ahora puede hacerlo con losetup. Use la opción -P ( --partscan ) para leer la tabla de particiones y crear nodos de dispositivo para cada partición:

# losetup --show -f -P test.img
/dev/loop0

# ls /dev/loop0*
/dev/loop0
/dev/loop0p1
/dev/loop0p2

# mount /dev/loop0p1 /mnt/tmp

losetup -P automatización

losetup -P es el mejor método que comienza en Ubuntu 16.04 como se menciona en https: // stackoverflow. com / a / 15200862/895245 , aquí hay funciones para automatizar si es más. Uso:

$ los my.img
/dev/loop0
/mnt/loop0p1
/mnt/loop0p2

$ ls /mnt/loop0p1
/whatever
/files
/youhave
/there

$ sudo losetup -l
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE                                                                                      DIO
/dev/loop1         0      0         0  0 /full/path/to/my.img

$ # Cleanup.
$ losd 0
$ ls /mnt/loop0p1
$ ls /dev | grep loop0
loop0

Fuente:

los() (
  img="$1"
  dev="$(sudo losetup --show -f -P "$img")"
  echo "$dev"
  for part in "$dev"?*; do
    if [ "$part" = "${dev}p*" ]; then
      part="${dev}"
    fi
    dst="/mnt/$(basename "$part")"
    echo "$dst"
    sudo mkdir -p "$dst"
    sudo mount "$part" "$dst"
  done
)
losd() (
  dev="/dev/loop$1"
  for part in "$dev"?*; do
    if [ "$part" = "${dev}p*" ]; then
      part="${dev}"
    fi
    dst="/mnt/$(basename "$part")"
    sudo umount "$dst"
  done
  sudo losetup -d "$dev"
)

Ok, esta pregunta es antigua, pero solo por el sako de la integridad: Esto aquí me parece mucho más fácil.

Cita:

rmmod loop
modprobe loop max_part=63
losetup -f /path/to/your/disk/image.raw
mount /dev/loop0p1 /mnt/path

Más automatización para las respuestas anteriores que fueron geniales.

Para simplificar aún más la tarea (que es necesaria si lo hace con frecuencia), puede usar mi script mountimg para hacer todo por usted. Solo obténgalo de https://github.com/AlexanderAmelkin/mountimg y usar así:

mountimg disk_image.img $PARTNO /mnt/mountpoint

También puede especificar el tipo de sistema de archivos y cualquier otra opción de montaje adicional si lo desea:

mountimg disk_image.img $PARTNO /mnt/mountpoint -t vfat -o codepage=866,iocharset=utf-8

Cuando haya terminado con la partición, simplemente umount it:

umount /mnt/mountpoint
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top