Monter une image ISO : Linux, Windows et macOS
Monter une ISO, c'est la rendre accessible comme un lecteur, sans la graver ni l'extraire. Les 3 systèmes savent le faire nativement depuis des années, donc aucun DaemonTools ni utilitaire tiers n'est nécessaire.
Linux
Le point de montage doit exister avant, et l'opération demande les droits root :
loop demande au noyau de présenter le fichier comme un périphérique bloc, ro évite un avertissement puisqu'une ISO est de toute façon en lecture seule. Le démontage se fait par le point de montage :
Si umount répond target is busy, c'est qu'un shell ou un process travaille encore dedans. lsof désigne le coupable plutôt que de forcer :
Pour monter sans être root, udisksctl passe par le service système et monte automatiquement sous /media :
udisksctl loop-setup -r -f image.iso
udisksctl mount -b /dev/loop0
udisksctl loop-delete -b /dev/loop0
Et pour rendre le montage permanent, une ligne de fstab, avec le nofail qui évite qu'un fichier absent bloque le démarrage :
Juste extraire un fichier
Quand il s'agit de récupérer 2 fichiers, le montage est superflu. 7z lit les ISO directement, sans droits particuliers :
Windows 10 et 11
Depuis Windows 8, un double-clic sur une ISO la monte et lui attribue une lettre de lecteur. L'éjection se fait par un clic droit sur le lecteur, puis Éjecter.
Si le double-clic ouvre un autre programme, c'est qu'une application (souvent WinRAR ou 7-Zip) s'est associée à l'extension. Le clic droit puis Ouvrir avec → Explorateur Windows rétablit le comportement natif pour cette fois, et Choisir une autre application → Toujours le rend définitif.
En PowerShell, ce qui est indispensable dans un script :
$image = Mount-DiskImage -ImagePath "C:\images\image.iso" -PassThru
($image | Get-Volume).DriveLetter
Dismount-DiskImage -ImagePath "C:\images\image.iso"
-PassThru renvoie l'objet, seul moyen de récupérer la lettre attribuée, qui n'est pas prévisible. Sans lui, la commande monte l'image sans rien afficher.
L'erreur Le fichier image spécifié n'est pas reconnu comme un fichier image de disque valide a presque toujours la même cause : le fichier est incomplet, ou porte l'extension .iso sans en être une. Un contrôle d'empreinte tranche :
Si le fichier vient d'un .bin renommé à la main, voir convertir un .bin en .iso.
macOS
Un double-clic monte l'image dans /Volumes. En ligne de commande :
hdiutil attach -nobrowse monte sans faire apparaître l'icône sur le bureau, ce qui est préférable dans un script.
Vérifier une ISO avant de s'en servir
Un montage qui échoue vient plus souvent d'un téléchargement tronqué que d'un problème d'outil. Le contrôle du format et de la taille prend 2 secondes :
Et si file répond simplement data, ce n'est pas une ISO : le fichier a besoin d'être converti avant d'être monté.