Publié le 16 janvier 2020
Dans le cadre de mon travail j’ai dû monter une image ISO contenant plusieurs partitions. Il s’agissait de l’image disque d’une VM s’étant fait pirater, sur laquelle je devais faire des investigations. Si on fait un bête mount, ça ne marche pas :
mount image.iso /mnt/
mount: /mnt: mauvais type de système de fichiers, option erronée, superbloc erroné sur /dev/loop0, page de code ou programme auxiliaire manquant, ou autre erreur.
Il faut procéder autrement. D’abord j’utilise fdisk
pour
récupérer les informations de base sur l’image ISO.
fdisk image.iso
J’utilise la commande p
pour avoir les informations
:
Commande (m pour l'aide) : p
Disque image.iso : 50 GiB, 53687091200 octets, 104857600 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0xe483a6f1
Périphérique Amorçage Début Fin Secteurs Taille Id Type
image.iso1 2048 3905535 3903488 1,9G 82 partition d'échange Linux / Solaris
image.iso2 * 3905536 104857599 100952064 48,1G 83 Linux
Ici je vous qu’il y a deux partitions. La première c’est du swap,
elle ne m’intéresse pas. La deuxième est la partition système, c’est
celle là que je veux monter. J’ai besoin de récupérer trois informations
: Taille de secteur
, Début
et Id
.
Dans mon cas, c’est respectivement 512
,
3905536
et 83
.
Id
est un code indiquant le type formatage de la
partition. Dans mon cas je sais ça correspond ext4
, mais si
on ne le sait pas, il suffit de faire la commande l
pour
lister les types existants :
Commande (m pour l'aide) : l
0 Vide 24 NEC DOS 81 Minix / Linux a bf Solaris
1 FAT12 27 TFS WinRE masqu 82 partition d'éch c1 DRDOS/sec (FAT-
2 root XENIX 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 usr XENIX 3c récupération Pa 84 OS/2 cachée ou c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux étendue c7 Syrinx
5 Étendue 41 PPC PReP Boot 86 NTFS volume set da Données non-FS
6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility
8 AIX 4e 2e partie QNX4. 8e LVM Linux df BootIt
9 Amorçable AIX 4f 3e partie QNX4. 93 Amoeba e1 DOS access
a Gestionnaire d' 50 OnTrack DM 94 Amoeba BBT e3 DOS R/W
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi ea Alignement Rufu
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD eb BeOS fs
f Étendue W95 (LB 54 OnTrackDM6 a6 OpenBSD ee GPT
10 OPUS 55 EZ-Drive a7 NeXTSTEP ef EFI (FAT-12/16/
11 FAT12 masquée 56 Golden Bow a8 UFS Darwin f0 Linux/PA-RISC b
12 Compaq diagnost 5c Priam Edisk a9 NetBSD f1 SpeedStor
14 FAT16 masquée < 61 SpeedStor ab Amorçage Darwin f4 SpeedStor
16 FAT16 masquée 63 GNU HURD ou Sys af HFS / HFS+ f2 DOS secondaire
17 HPFS/NTFS masqu 64 Novell Netware b7 BSDI fs fb VMware VMFS
18 AST SmartSleep 65 Novell Netware b8 partition d'éch fc VMware VMKCORE
1b W95 FAT32 masqu 70 DiskSecure Mult bb Boot Wizard mas fd RAID Linux auto
1c W95 FAT32 masqu 75 PC/IX bc Acronis FAT32 L fe LANstep
1e W95 FAT16 masqu 80 Minix ancienne be Amorçage Solari ff BBT
Ensuite on peut quitter fdisk avec q
:
Commande (m pour l'aide) : q
Maintenant il ne reste plus qu’à utiliser mount
pour
monter l’image ISO, mais en spécifiant l’offset de début de la partition
qui nous intéresse. Ça se fait en multipliant les valeurs Taille de
secteur et Début récupérées plus tôt. Dans notre cas : 3905536 × 512 =
1999634432
mount -t ext4 -o loop,offset=1999634432 image.iso /mnt/