Parcourir .img sans montage

13

Est-il possible de parcourir un fichier .img sans le monter? J'ai un fichier .img que j'ai généré à partir d'un instantané de partition clonezilla. J'ai en quelque sorte des problèmes pour monter le fichier avec la commande mount -o loop sda5.img /mnt/.

dmesg | tail me montre l'erreur suivante:

[1325.395286] EXT4-fs (loop0): mauvaise géométrie: le nombre de blocs 11221248 dépasse la taille de l'appareil (blocs 11218432)

Quelqu'un a une idée de la navigation sans montage ou de la cause de cette erreur?

Ahatius
la source
Ça a l' air mauvais .
Uri Herrera
connexes: unix.stackexchange.com/questions/32008/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Réponses:

18

S'il s'agit d'une image d'un disque dur entier ou comme dans votre cas, il peut s'agir d'une image d'une partition étendue, vous devrez connaître la disposition de la partition et les décalages de chaque partition du fichier pour pouvoir les monter.

Pour ce faire, vous aurez besoin de l' partedoutil, vous pouvez l'installer avec la commande suivante:

apt-get install parted

Après l'installation parted, démarrez-le avec le chemin d'accès à votre fichier image. Une partedinvite s'affiche:

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

Dans cette invite (préfixée par (parted)), tapez les commandes suivantes:

(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

Le tableau dans la sortie vous indiquera les décalages de chaque partition dans le fichier et le type de système de fichiers dans chaque partition. Par exemple, pour monter la première partition dans l'exemple de sortie ci-dessus, vous devrez entrer la commande suivante:

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

Assurez-vous que cela /mnt/partitionexiste en premier.

cintreuse
la source
1
Ok, je pense que le problème pourrait être que j'obtiens une erreur lors de l'exécution de la commande d'impression, car elle indique table de partition inconnue. Je suppose que l'image est cassée?
Ahatius
On dirait que c'est cassé. Mais essayez d'abord de rechercher votre erreur sur Google.
bender
1
Can't have a partition outside the disk!erreur avec parted comme avec gparted ...
Philippe Gachoud
8

J'ai eu ce même problème avec une image ext4 générée à partir d'un instantané Clonezilla.

Ce qui a réellement fonctionné pour moi, c'était d'étendre le fichier à la taille indiquée par la table de partition, en utilisant tronquer. L'erreur dmesg signalée dans mon cas était:

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

J'ai donc ajusté la longueur du fichier avec:

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

(^ notez que c'est le premier et le plus grand des deux nombres dans le journal)

Après ce montage, j'étais content et j'ai pu accéder à mes données.

Anthony Lenton
la source
Cela a fonctionné pour moi, même si la taille était incorrecte, je suppose que les tailles de bloc étaient différentes, j'ai donc dû spécifier la taille en octets. Soyez prudent car vous pouvez perdre des données si vous tronquez votre fichier image à une taille plus courte que la taille d'origine.
golimar
1
Comment connaissez-vous la bonne taille? veuillez ajouter les commandes ici.
Hunsu
@Hunsu La taille est signalée dans le message d'erreur (dmesg).
Melebius