Creation d'une image ISO bootable El Torito
(Encore à finir, je dois partir toute de suite)
Cet article détaille la création d'une image ISO bootable selon la spécification "El Torito" [1]
La Théorie (comment ça devrait fonctionner)
Si j'ai bien compris après avoir lu les spécifications, pour booter un CD, il faut inclure dans l'image ISO un ou plusieurs fichiers boot qui seront chargés par le BIOS quand le système démarre et le(s) signaler à un endroit bien particulier des en-têtes de iso9660.
Ces images de boot virtuelles et leurs différentes options sont groupées dans un autre fichier également obligatoire et qui s'appelle "boot catalog".
Normalement il n'y a qu'un seul fichier de boot mais le document propose un système pour en avoir plusieurs. L'idée, c'est que la première image boot (default entry) est toujours chargée et après, elle pourra exécuter des instructions BIOS si elle veut charger une autre boot-image.
Les boot-images peuvent s'exécuter dans trois contextes différents:
- Avec une émulation de lecteur disquette. Le BIOS traitera l'image comme la première disquette du système (A: /dev/fd0) et déplacera la disquette existante en deuxième position (B: /dev/fd1) et éliminera le deuxième lecteur.
Pour accéder au CD il faut que la disquette virtuelle le monte de manière standard (mount ou mscdex en M$).
Pour ce faire l'image doit avoir une taille standard: 1.2M, 1.44M ou 2.88M
- Avec une émulation de disque dur. Le BIOS traitera l'image comme la partition C: en rendant le vraie disque dur inaccessible via l'interruption INT 13h du BIOS. (j'imagine que le disque dur reste toujours accessible en direct sans passer par le BIOS). Il n'y a pas de contraintes quant à la taille de cette image.
- Sans émulation du tout. L'image est exécutée directement et les assignations BIOS restent inchangées. Cette méthode est utilisée par ISOLINUX (voir plus bas).
La Pratique, qu'est-ce qu'on fait
Méthode classique: El Torito avec émulation de disquette
Cette méthode est utilisée par *DOS, Hasefroch ou tout un autre système qui se base sur une image de disquette bootable déjà existante. On peut, soit la créer [2] ou l'extraire d'une disquette via: