L'objectif de ce tutoriel est de pouvoir re-créer une image ISO étendue (augmentée de fichiers, pilotes, etc) à partir d'une image ISO existant ou encore de créer une ISO amorçable à partir des seuls fichiers du CD d'origine. L'utilisation de cette technique est multiple mais pour l'exemple, nous allons l'appliquer à la création d'un CD windows amorçable à partir d'une archive du type de celles fournit par Microsoft et ne contenant que les fichiers d'installation.
Pour commencer, il nous faut créer un dossier, disons bootable pour faire dans l'originalité. Dans ce dossier nous allons décompresser l'ensemble des fichiers présents dans l'archive d'installation.
Si l'objectif est de recréer un CD contenant plus de pilotes, ou des correctifs, la même recopie peut être faire à partir du CD original ou d'une image ISO de celui-ci que l'on aura monté par un mount image.iso point_montage -o loop.
Les opérations de copie et de mis à jour terminée, nous pouvons passer à l'étude du point délicat de l'histoire, l'image d'amorçage du CD.
Pour la petite histoire, l'extension de la norme ISO9660 du CD-ROM est étendue par un autre norme, nommée El Torito qui elle décrit la manière de démarrer sur le CD-ROM. Physiquement, cela correspond à un secteur du CD contenant les 2048 octets d'un programme d'amorçage. Ce programme est spécifique à l'OS que l'on cherche à utiliser et même parfois à sa version.
Pour créer notre image ISO, nous allons avoir besoin de ce programme sous la forme d'un fichier (une image). Pour Windows, vous pouvez récupéré cette image ici, cherchez dans la page le lien version un fichier cdsector.bin. Mais si cela ne fonctionne pas, vous pouvez toujours l'extraire à partir d'un CD original.
L'opération est un peu plus compliqué qu'il n'y parait car la position de ce secteur n'est pas fixe, elle se calcule. Du coup, pas possible d'utiliser simplement la commande dd sans l'avoir préalablement repéré. Heureusement, il existe un script perl qui fait cela très bien, disponible ici. Il s'utilise très simplement comme cela :
Si vous n'avez pas l'image ISO de votre cd, sachez qu'elle peut très facilement être extraire par la commande dd :
Si tout c'est bien passé, nous avons notre image de démarrage qui fait très exactement 2048 octets, dans notre dossier bootable. Passons à la création de l'image ISO à proprement parler.
A ce stade, nous avons tous nos fichiers dans le dossier bootable et notre image el torito en bootable/BOOT.IMG.
Nous allons maintenant utiliser l'indispensable mkisofs disponible dans toutes les distributions pour compiler notre dossier en une image ISO :
Au bout de peu de temps, mkisofs a compilé l'ensemble des fichiers en une image ISO amorçable que vous pouvez tester avec VirtualBox par exemple.
Une fois l'image validée, vous n'avez plus qu'à la graver :