Comment monter des ISO et d'autres types de fichiers image sous Linux ?

Publié: 2018-09-06

Avez -vous déjà eu besoin de vérifier le contenu d'un fichier image ? Peut-être avez-vous oublié de quelle version de cette distribution Linux il s'agissait. Il peut y avoir de nombreuses raisons de revérifier une image, mais comment le faire sans la graver ? Découvrons-le, aucun logiciel supplémentaire n'est requis.

Chaque utilisateur Linux féru de technologie devrait être familiarisé avec la commande mount . C'est une partie très importante de l'administration générale du système. Mais, beaucoup ne savent pas que la commande mount est en fait beaucoup plus puissante qu'il n'y paraît à première vue.

Montage de fichiers image sous Linux

Nous pouvons monter rapidement et facilement, non seulement des images ISO, mais même des images de disques avec des partitions.

Rapidement, voici un exemple de montage d'un fichier ISO.

mount -o loop image_disque.iso /chemin/vers/montage/dir

Ici, l'indicateur -o sert à transmettre les options de montage, et dans ce cas, nous disons à mount que nous voulons monter l'image à l'aide d'un périphérique de bouclage . Un périphérique de bouclage est un très bon concept développé pour aider au montage de fichiers image. Un périphérique de bouclage est un pseudo-périphérique logiciel qui agit comme un intermédiaire et permet au système de traiter le fichier comme s'il s'agissait d'un périphérique bloc tel qu'un lecteur de CD-ROM, un disque dur, etc. avec le fichier, telles que l'exécution de fonctions de système de fichiers (qui supposent qu'il existe un périphérique de bloc sous-jacent) .

C'est plutôt cool, mais qui utilise encore les ISO, n'est-ce pas ? Eh bien, Mount peut aussi faire un peu plus. Si vous avez un fichier image d'un disque dur (obtenu à partir de dd ou quelque chose de similaire) , appelons-le hdd.img, alors vous pouvez également monter les systèmes de fichiers qu'il contient. Et si vous soupçonnez que nous devons à nouveau utiliser un périphérique de bouclage, vous êtes sur la bonne voie.

Mais si vous essayez ceci…

mount -o loop hdd.img /path/to/mount/dir

vous n'aurez pas beaucoup de chance.

C'est parce que la plupart des disques ont des tables de partition. Les CD et les DVD n'ont généralement pas de tables de partitions car cela ne convient pas à leurs cas d'utilisation. Lorsque mount commence à monter un volume, il s'attend à rencontrer un système de fichiers, pas une table de partition.

Cela ne signifie pas pour autant que cela ne peut pas être fait. Afin de monter le système de fichiers, nous devons indiquer à mount où il se trouve dans le fichier image avec une information transmise aux options de montage. L'élément d'information requis par le montage est le décalage de la partition, c'est-à-dire le nombre d'octets dans le fichier image où la partition commence . Il existe différentes façons de le savoir, mais fdisk fait le travail pour vous.

fdisk -l hdd.img

Supposons que fdisk nous indique que le secteur de départ est 100 (ce n'est qu'un exemple, il est hautement improbable que ce soit correct dans votre cas spécifique) . Ce que nous devons faire maintenant est de prendre ce numéro de secteur et de le multiplier par la taille du secteur du disque dur à partir duquel l'image a été prise, ce sera (très probablement) 512 octets sur les anciens disques et éventuellement 4096 (4K) sur les plus récents, mais vous devriez toujours vérifier cela lors du clonage de lecteurs (peut-être le mettre dans le nom du fichier pour faire bonne mesure) . La taille de secteur est le nombre d'octets par secteur.

Nous allons utiliser une taille de secteur de 512 octets pour plus de simplicité, et cela nous donnerait un décalage de 51 200. Ce décalage est le nombre d'octets dans l'image où le système de fichiers démarre. Sachant cela, nous pouvons dire à mount exactement où trouver le système de fichiers.

mount -o ro,loop,offset=51200 hdd.img /path/to/mount/dir

REMARQUE : J'ai également ajouté l'option ro dans cet exemple pour montrer comment vous pouvez monter un système de fichiers en lecture seule. Ceci est particulièrement utile dans les applications médico-légales où vous ne pouvez pas perturber l'intégrité des données pour des raisons de sécurité ou même juridiques. Souvent, un fichier image sera créé à partir du disque à l'aide d'un adaptateur spécial appelé bloqueur d'écriture qui bloque littéralement toutes les commandes d'écriture et n'autorise que les commandes de lecture.

C'est beaucoup de travail avec les maths et tout, mais il doit y avoir un moyen plus simple, non ? Cela dépend de la date de la distribution Linux que vous utilisez, mais tout ce qui date des cinq dernières années ne devrait pas poser de problème.

L'outil losetup permet de configurer des périphériques de bouclage. Vous vous demandez peut-être pourquoi vous souhaitez configurer manuellement un périphérique de bouclage alors que mount s'occupe de tout cela pour vous. Rappelez-vous que mount ne voulait pas monter l'intégralité de l'image disque à cause de cette table de partition ennuyeuse? Eh bien, étant donné que la table de partition contient tous les calculs sur l'emplacement des partitions (où fdisk obtient toutes ses informations) , il serait beaucoup plus facile de laisser le système le référencer à la place. Nous pouvons simplement créer un périphérique de bouclage pour l'ensemble de l'image disque, puis dire au système de rechercher les partitions sur le périphérique de bouclage nouvellement créé.

losetup -f hdd.img

REMARQUE : L'indicateur -f transmis à losetup lui indique simplement de créer un périphérique de bouclage avec un nom qui n'est pas encore utilisé, tel que /dev/loop1 si /dev/loop0 est déjà utilisé . Alternativement, vous pouvez passer un nom de périphérique tel que /dev/loop0 , si ce périphérique n'existe pas, losetup le créera, si c'est le cas, il le réaffectera au fichier image nouvellement nommé.

Si la commande réussit, vous verrez le périphérique de bouclage nouvellement créé sous /dev/ . Maintenant, vous pouvez utiliser

partieprobe /dev/loopback0

ou

kpartx -u /dev/loopback0

si vous avez partprobe ou kpartx installé, respectivement. Cependant, parted devrait être installé sur la plupart des distributions Linux modernes.

Une fois cela fait, vous devriez voir quelque chose comme /dev/loop0p1 dans /dev/ . Il s'agit de votre partition, que vous pouvez ensuite facilement monter.

mount /dev/loop0p1 /chemin/vers/mount/dir

Comme vous le remarquerez probablement, aucun bouclage n'est requis. C'est parce que nous nous en sommes déjà occupés.

Nous pouvons cependant rendre cela encore plus facile en ajoutant un seul indicateur à losetup .

losetup -f -P hdd.img

L'indicateur -P que nous avons utilisé indique en fait à losetup que le noyau analyse la table des partitions, afin que nous puissions passer directement au montage de la partition que nous voulons.

En utilisant ce qui précède, vous pouvez monter une variété d'images de disque. Peu importe qu'ils proviennent de supports optiques, de clés USB, de partitionnement MBR ou de GPT. Le noyau Linux peut gérer tellement de tables de partitions et de systèmes de fichiers différents que vous aurez plus de mal à trouver quelque chose qu'il ne prend pas en charge.

Bien sûr, il pourrait y avoir des outils qui rendent cela beaucoup plus facile, mais où est le plaisir là-dedans ? J'ai utilisé ces techniques dans la récupération de données et l'administration générale du système et, comme tout type de connaissances, elles sont extrêmement précieuses en cas de besoin.

Faites-nous savoir dans les commentaires ci-dessous si vous avez des astuces qui compléteraient celles-ci.

A lire aussi :