Explore .img sin montar

13

¿Hay alguna forma de examinar un archivo .img sin montarlo? Tengo un archivo .img que he generado a partir de una instantánea de partición clonezilla. De alguna manera tengo problemas para montar el archivo con el comando mount -o loop sda5.img /mnt/.

dmesg | tail me muestra el siguiente error:

[1325.395286] EXT4-fs (loop0): geometría incorrecta: el recuento de bloques 11221248 excede el tamaño del dispositivo (11218432 bloques)

¿Alguien tiene una idea de cómo navegar sin montar o qué podría estar causando este error?

Ahatius
fuente
Eso se ve mal .
Uri Herrera
relacionado: unix.stackexchange.com/questions/32008/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Respuestas:

18

Si se trata de una imagen de un disco duro completo o, como en su caso, podría ser una imagen de una partición extendida, necesitará conocer el diseño de la partición y los desplazamientos de cada partición en el archivo para poder montarlos.

Para hacer esto, necesitará la partedherramienta, puede instalarla con el siguiente comando:

apt-get install parted

Después de la instalación parted, comience con la ruta a su archivo de imagen. Se partedmostrará un mensaje:

$ parted /path/to/image/file/sda5.img
GNU Parted 2.3
.....
(parted)

En este indicador (con el prefijo (parted)), escriba los siguientes comandos:

(parted) unit B
(parted) print
.....
Number  Start          End            Size           Type     File system  Flags
 1      1048576B       1573912575B    1572864000B    primary  ntfs         boot
 2      1573912576B    156774694911B  155200782336B  primary  ntfs
 3      156774694912B  171454758911B  14680064000B   primary  ntfs
 4      171454758912B  180044693503B  8589934592B    primary

(parted) q

La tabla en la salida le indicará los desplazamientos de cada partición en el archivo y el tipo de sistema de archivos en cada partición. Por ejemplo, para montar la primera partición en la salida de ejemplo anterior, deberá ingresar el siguiente comando:

sudo mount -o loop,ro,offset=1048576 /path/to/image/file/sda5.img /mnt/partition

Asegúrese de que /mnt/partitionexista primero.

juerga
fuente
1
Ok, creo que el problema podría ser que obtengo un error al ejecutar el comando de impresión, porque dice una tabla de partición desconocida. Supongo que la imagen está rota?
Ahatius
Parece que está roto. Pero primero trate de buscar su error en Google.
Bender
1
Can't have a partition outside the disk!error con parted como con gparted ...
Philippe Gachoud
8

Tengo el mismo problema con una imagen ext4 generada a partir de una instantánea de Clonezilla.

Lo que realmente funcionó para mí fue extender el archivo al tamaño que informa la tabla de particiones, usando truncar. El error dmesg reportado en mi caso fue:

[15687.653868] EXT4-fs (loop0): bad geometry: block count 18482176 exceeds size
  of device (18352672 blocks)

Así que ajusté la longitud del archivo con:

truncate -o -s 18482176 /path/to/partition.img

(^ nota que es el primero, y el mayor de los dos números en el registro)

Después de eso, Mount estaba feliz y pude acceder a mis datos.

Anthony Lenton
fuente
Esto funcionó para mí, aunque el tamaño era incorrecto, supongo que los tamaños de bloque eran diferentes, por lo que tuve que especificar el tamaño en bytes. Tenga cuidado porque puede perder datos si trunca su archivo de imagen a un tamaño más corto que el tamaño original.
golimar
1
¿Cómo sabes el tamaño correcto? por favor agregue los comandos aquí.
Hunsu
@Hunsu El tamaño se informa en el mensaje de error (dmesg).
Melebius