¿Cómo montar una partición desde un archivo de imagen que contiene múltiples particiones en Linux?
-
07-07-2019 - |
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:
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