Montaje de imagen de disco en formato RAW

11

Al intentar montar una imagen de disco en formato Raw (dd) con el siguiente comando

mount  nps-2010-emails.dd /media/manu/

Me sale el siguiente mensaje de error

mount: you must specify the filesystem type

Sé que usando -tpodemos especificar el sistema de archivos, pero cuál es la terminología para un archivo RAW (dd), que se puede pasar como argumento al comando mount. Si mi método para montar este sistema de archivos es incorrecto, ayúdame a hacer lo mismo.

$ file -s nps-2010-emails.dd
nps-2010-emails.dd: x86 boot sector; 
partition 1: ID=0xb, starthead 254, startsector 1, 20479 sectors, extended partition table (last)\011, code offset 0x0

$ fdisk -l nps-2010-emails.dd
Disk nps-2010-emails.dd: 10 MB, 10485760 bytes
255 heads, 63 sectors/track, 1 cylinders, total 20480 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

             Device Boot      Start         End      Blocks   Id  System
nps-2010-emails.dd1               1       20479       10239+   b  W95 FAT32 
spaceman_spiff
fuente
¿Puedes agregar la salida del comando file -s nps-2010-emails.dda tu publicación, por favor?
steeldriver
Eché un vistazo a tu perfil y vi la otra pregunta. Quizás esta publicación de blog pueda ser de ayuda.
muru
@steeldriver Salida agregada ...
spaceman_spiff
Opciones de montaje más fáciles
Hannu

Respuestas:

16

Desde http://major.io/2010/12/14/mounting-a-raw-partition-file-made-with-dd-or-dd_rescue-in-linux/ , hay una sugerencia para usar un desplazamiento. Primero obtenga el desplazamiento vía fdisk(8)y luego especifíquelo con la offsetopción mount. Se usa fdiskpara determinar el sector inicial de la partición y el tamaño del sector. Luego calcule el desplazamiento en bytes utilizando el número de sector inicial y el tamaño del sector en bytes. Consulte Montar una partición única de la imagen de todo el disco (dispositivo) para ver un ejemplo. Finalmente:

mount -o offset=<offset in bytes> nps-2010-emails.dd /media/manu/

En un disco duro típico, las celdas que contienen los datos se agrupan. Las agrupaciones se denominan sectores. De la forma en que generalmente dividimos las cosas, los primeros sectores se mantienen a un lado para dar información sobre las particiones, dejando un vacío. Entonces, si tenemos una imagen de un disco completo, estos sectores también se incluyen. Ahora, el mountcomando no puede comenzar directamente en el primer byte, ya que la partición no comienza en el primer byte. Entonces, tendremos que decirmountcuántos bytes omitir (para que pueda evitar la información adicional) y llegar a la partición real. Esto se llama desplazamiento. Ahora cada sector puede almacenar una cierta cantidad de información en bytes, que se denomina tamaño de un sector. Tomamos el tamaño total de la información que se puede almacenar en esta brecha multiplicando el tamaño de un sector, con el tamaño de la brecha en el número de sectores.

Desde la salida de fdiskallí, puede ver que el tamaño del sector es de 512 bytes y comienza en el sector 1. Por lo tanto, el desplazamiento es 1 * 512 = 512. Pruebe el siguiente comando:

mount -t vfat -o offset=512 ps-2010-emails.dd /media/manu/

Agregué el tipo de sistema de archivos ya que lo fdiskdi como FAT32. Para montarlo para escribir también, use -o offset=512,rwen su lugar.

muru
fuente
He leído el artículo en el primer enlace que ha publicado, pero no entendí mucho sobre compensación , número de sector y otros conceptos, si es posible, ¿podría explicar este tema o publicar algunas referencias para estudiarlo? Gracias
spaceman_spiff
Publicación actualizada para incluir la salida de fdisk -l nps-2010-emails.dd.
spaceman_spiff
Gracias, mi experiencia ha sido en informática teórica (soy estudiante de matemáticas), ¿hay alguna referencia para entender este tema en una nota general?
spaceman_spiff
¿'Este' tema es discos, sectores, sistemas de archivos y todo eso? Tal vez podría comenzar con el capítulo IO / Almacenamiento de un libro de texto de Sistemas Operativos, como el de Tannenbaum. Aparte de esos conceptos básicos, y el tipo de montaje FAT32, todo lo que publiqué en la respuesta es de tholinks.
muru
10

También puede hacer que la computadora escanee automáticamente todas las particiones en un volcado y prepare automáticamente todos los dispositivos de bucle, como se describe aquí .

Entonces, digamos que arrojaste todo /dev/sdaen algo llamado sda.img. Puede acceder a sus particiones de la siguiente manera:

losetup -f -P sda.img

En mi sistema, aparece de la siguiente manera:

imagen cruda sda

En entornos sin GUI, puede enumerar el dispositivo creado con losetup -l, que le indicará el nombre del dispositivo de bucle, por ejemplo:

# losetup -l
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0         0      0         0  0 /path/mmcblk0

Luego puede montar say, la primera partición, con:

mount /dev/loop0p1 /mnt/mypartition

Espero que ayude.

agregado 1166877
fuente
Me funcionó perfectamente.
Praveen Pathak
2
En la misma línea, en Ubuntu 18.04 no tuve problemas para hacer "gparted backup.img" y obtener una lista de particiones. "fdisk -l backup.img" también muestra información útil.
RoundSparrow hilltx
1
¿Cómo deshaces el losetupcomando?
Flimm
1

No puedo agregar un comentario por falta de reputación, pero quiero decirles a aquellos de ustedes que tienen un disco GPT cuando lo prueban con fdisk, use gdsik en su lugar para iniciar el sector y contar el desplazamiento adecuado. Me ayudó.

fdisk -l me dio:

      Device Boot      Start         End      Blocks   Id  System
vm2080737.bak1   *           1        3901    31457279+  ee  GPT

y no se pudo montar con un desplazamiento de 512 con un error 'montar: debe especificar el tipo de sistema de archivos'

gdisk -l me dio buen resultado:

Number  Start (sector)    End (sector)  Size       Code  Name
   1              34             545   256.0 KiB   A501  gpboot
   2             546          993825   485.0 MiB   A502  swap
   3          993826        62914526   29.5 GiB    A503  rootfs
Drey
fuente
1
O utilice parted.
muru