¿Cómo montar una partición desde un archivo de imagen que contiene varias particiones en Linux?
El archivo de imagen tiene una tabla de particiones y contiene varias particiones.
Los dispositivos de bucle invertido podrían ser una posibilidad.
Temas relacionados:
6 answers
Digamos que IMAGE IMAGE se establece en la ruta a su archivo de imagen. Puedes escribir un pequeño script usando
fdisk -u sectors -l $IMAGE
Para obtener una lista de particiones dentro de la imagen. Y luego utilizar 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 (start sector * 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 que una buena indicación sobre cómo realizarlo. Si haces el trabajo una vez, has un pequeño buen comienzo para algunas herramientas forenses!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-12 20:43:59
Puedes 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 quitar el dispositivo de bucle después de terminar:
# kpartx -v -d logging-test.img
del devmap : loop0p2
del devmap : loop0p1
loop deleted : /dev/loop0
#
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-06 18:45:26
Si tiene util-linux v2.21 o superior, ahora puede hacer esto con losetup. Utilice el -P
(--partscan
) opción 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-11 00:33:10
losetup -P
automatización
losetup -P
es el mejor método a partir de Ubuntu 16.04 como se menciona en https://stackoverflow.com/a/15200862/895245 , aquí hay funciones para automatizar si 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"
)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-20 11:23:32
Ok, esta pregunta es eones de edad, pero solo para 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-03 12:17:15
Algo más de automatización a las respuestas anteriores que fueron geniales.
Para simplificar aún más la tarea (que es necesaria si lo haces a menudo), puedes usar mi script mountimg
para hacer todo por ti. Solo consíguelo 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
es:
umount /mnt/mountpoint
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-11 10:18:10