Usé dd
para hacer una copia de seguridad de una unidad 80GB
dd if=/dev/sdb of=~/sdb.img
Ahora necesito acceder a algunos archivos en esa unidad, pero no quiero copiar el ".img" de nuevo en la unidad.
mount ~/sdb.img /mnt/sdb
tampoco funciona. Vuelve :
mount: you must specify the filesystem type
Intenté encontrar el tipo de sistema de archivos con file -s
[email protected] $ file -s sdb.img
sdb.img: x86 boot sector; partition 1: ID=0x12, starthead 1, startsector 63, 10233342 sectors; partition 2: ID=0xc, active, starthead 0, startsector 10233405, 72517410 sectors; partition 3: ID=0xc, starthead 0, startsector 82750815, 73545570 sectors, code offset 0xc0
¿Es posible montar sdb.img
, ¿o debo usar dd
para restaurar la unidad?
Cuando usa dd
en /dev/sdb
en vez de /dev/sdb1
o /dev/sdb2
, copia todas las particiones de dicha unidad en una archivo.
Debe montar cada partición por separado.
Para montar una partición de un archivo , primero debe averiguar dónde en el archivo que reside la partición.
Usando su salida de file -s sdb.img
encontramos el startsectors
para cada partición:
sdb.img: sector de arranque x86; partición 1 : ID = 0x12, starthead 1, startsector 63 , 10233342 sectores; partición 2 : ID = 0xc, activo, cabeza inicial 0, sector inicial 10233405 , 72517410 sectores; partición 3 : ID = 0xc, starthead 0, startsector 82750815 , 73545570 sectores, compensación de código 0xc0
Partición Sector de inicio
1 63
2 10233405
3 82750815
Para montar una sola partición, donde X
es el sector de inicio de esa partición, ejecute:
mount ~/sdb.img /mnt/sdb -o offset=$((X*512))
Entonces, para montar la segunda partición , tendrá que ejecutar:
mount ~/sdb.img /mnt/sdb2 -o offset=$((10233405*512))
nota al margen: asegúrese de que /mnt/sdb2
existe antes de ejecutar esto.
¡Que te diviertas!
actualización: En la respuesta, asumí que el tamaño del sector para su imagen era 512
, consulte esta pregunta sobre cómo calcular eso.
En Linux, los comandos de montaje dentro de respuesta aceptada crearán implícitamente un dispositivo de bucle. Suponiendo que la imagen del disco completo tiene una tabla de particiones correcta (que su kernel es capaz de entender), es posible que prefiera usar losetup(8)
directamente para ahorrarle la molestia de calcular compensaciones. Además, no hay necesidad de herramientas adicionales como kpartx
como se sugiere en otro respuesta . Hará básicamente lo mismo que lo siguiente:
losetup -Prf sdb.img
Asociará el primer dispositivo de bucle libre (-f
) Como de solo lectura (-r
) Con el archivo de imagen sdb.img
. La opción -P
Fuerza al kernel a escanear la tabla de particiones de este dispositivo de bucle y creará dispositivos de bucle para cada partición.
Entonces puede obtener algo como:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 167.7G 1 loop
├─loop0p1 259:0 0 500M 1 loop
└─loop0p2 259:1 0 167.2G 1 loop
...
Ahora puede montar cada partición, de solo lectura, por supuesto, en un punto de montaje deseado.
$ mount -r /dev/loop0p1 /tmp/backup_sdb1
Mantener todo en modo de solo lectura es opcional, pero puede ser bueno para una imagen de respaldo.
actualización: Se agregó la opción -P
con util-linux-2.21 en 2012. Por lo tanto, no estaba disponible en el momento en que se escribió la respuesta aceptada. También tenga en cuenta que esta y las otras respuestas son específicas de Linux. OpenBSD y NetBSD tienen discos vnode administrados por vnconfig(8)
y FreeBSD tiene discos de memoria administrados por mdconfig(8)
.
Alternativamente, puede utilizar una buena herramienta llamada kpartx
. Desde la página del manual:
kpartx: crea mapas de dispositivos a partir de tablas de particiones
Esto significa que puede crear un "pseudo dispositivo", con particiones de dispositivo, directamente desde el archivo img:
$ kpartx -av sdb.img
add map loop0p1 (254:2): 0 2048 linear /dev/loop0 0
add map loop0p2 (254:3): 0 31162 linear /dev/loop0 2048
$ lsblk
.
.
.
loop0 7:0 0 16.2M 0 loop
├─loop0p1 254:2 0 1M 0 part
└─loop0p2 254:3 0 15.2M 0 part
Entonces puedes montar /dev/mapper/loop0p2
por ejemplo, si desea la segunda partición en la imagen.