Pour ceux installent ou réinstallent souvent Fedora, il peut être utile d'exploiter à fond l'image du DVD d'installation. L'ISO ne fait que 3,6Go ce qui nous laisse une bonne de marge de manoeuvre si l'on prend un DVD+RW comme média. Avec une clé USB de 8Go en tant que média d'installation et de l'imagination ce serait fantastique, mais je n'ai plus qu'un DVD sous la main... La première idée qui me vient est d'ajouter quelques paquets qui ne sont pas présents par défaut ainsi que de faire en sorte qu'il soient installés automatiquement sans avoir à « cocher toutes les cases ». Mais c'est en faisant quelques recherches dans l'image que j'ai vu à quel point je le sous-exploitais pour ma part. En effet parmis les nombreux paquets que j'avais prévu de rajouter, la moitié sont déjà présents dans les 3,6Go de l'ISO, mais n'étaient pas installés par défaut. Je vous invite donc à passer en root dès à présent, l'opération chirurgicale va commencer...
Après avoir téléchargé l'image et créé le répertoire /mnt/isoF17, nous pouvons la monter en lecture seule :
# mount -o loop /var/lib/libvirt/images/Fedora-17-x86_64-DVD.iso /mnt/isoF17
Puis on crée le répertoire ~/isoF17 pour copier tout le contenu de l'image :
$ cp -a /mnt/isoF17/* ~/isoF17
Juste pour ne pas trop ralonger l'article je prends comme exemple les paquets linux_logo et cowsay qui n'ont pas une liste de dépendances trop conséquente (n'oubliez pas les dépendances sinon l'install va foirer lamentablement).
Première étape, vérification d'une présence éventuelle dans le DVD :
$ grep linux_logo ~/isoF17/repodata/767f84f69c06ee9b14da2cc3ece4532520bd65969f4d8849852db692bbe57bc3-Fedora-17-comps.xml
$ grep cowsay ~/isoF17/repodata/767f84f69c06ee9b14da2cc3ece4532520bd65969f4d8849852db692bbe57bc3-Fedora-17-comps.xml
Ne renvoie rien donc ils ne sont pas dans le liste du menu « Personnaliser maintenant » de Anaconda.
En revanche ils pourraient être dans le dépôt en tant que dépendances d'autres paquets :
$ find ~/isoF17/Packages/ -iname linux_logo* -print
$ find ~/isoF17/Packages/ -iname cowsay* -print
Okay aucune trace de ces paquets dans le DVD, à moi de jouer maintenant. Téléchargement des paquets en provenance directe du dépôt fedora :
$ yumdownloader linux_logo cowsay
$ mv linux_logo-5.11-3.fc17.x86_64.rpm ~/isoF17/Packages/l/
$ mv cowsay-3.03-10.fc17.noarch.rpm ~/isoF17/Packages/c/
Il ne reste plus qu'à régénérer le dépôt de métadonnées, mais avant on doit ajouter nos paquets dans le fichier XML original :
$ scp ~/isoF17/repodata/*-Fedora-17-comps.xml ~/isoF17/Fedora-17-comps.xml
Et avec votre éditeur de texte préféré :
$ geany ~/isoF17/Fedora-17-comps.xml
Ceux qui ont quelques notions d'XML, et même les autres, verrons qu'il suffit d'ajouter entre deux balises <packagelist> une ligne pour chacun de nos paquets.
Par exemple pour que le paquet soit installé par défaut (uniquement si le groupe dans lequel il est présent est sélectionné) :

<packagereq type="default">linux_logo</packagereq>

Un autre exemple pour que le paquet soit disponible dans la liste de paquets du groupe, mais pas présélectionné :

<packagereq type="optional">cowsay</packagereq>

Et puis tant qu'on y est, dans le premier groupe au tout début du fichier XML, il s'agit du groupe « Outils d'administration » dans lequel se trouve yumex qui est présent dans le DVD mais n'est pas installé par défaut. Vous l'aurez compris, il suffit de changer type="optional" en type="default" pour que désormais il soit installé par défaut. Une fois que l'on a bien modifié ce fichier, il est temps de régénérer le dépôt de métadonnées :
$ rm -rf ~/isoF17/repodata
$ createrepo -g ~/isoF17/Fedora-17-comps.xml --distro Fedora-17 --repo Fedora-custom ~/isoF17/
Cette commande peut prendre un certain temps... Ensuite virer le fichier ~/isoF17/Fedora-17-comps.xml qui ne sert plus à rien, ou bien le garder en souvenir pour générer un patch, qui sait.
Le plus dûr est passé, voici la dernière étape, la reconstruction de l'ISO :

$ mkisofs -R -J -T -no-emul-boot -boot-load-size 4 -boot-info-table -V "Fedora 17 x86_64" -b isolinux/isolinux.bin -c isolinux/boot.cat -o Fedora-17-x86_64-DVD-custom.iso ~/isoF17

Vous savez lorsque l'on boote sur le DVD d'install il y a toujours une entrée pour vérifier la somme de contrôle md5 avant d'aller plus loin, et bien nous allons également intégere cette somme dans l'ISO :
$ implantisomd5 ~/Fedora-17-x86_64-DVD-custom.iso
Et puis il faut aussi générer le célèbre fichier CHECKSUM qui contient la somme de contrôle sha256 du fichier image :
$ sha256sum Fedora-17-x86_64-DVD-custom.iso > Fedora-17-x86_64-custom-CHECKSUM
Voilà, un ISO de pro, prêt à l'emploi... 
La manoeuvre est plutôt facile, j'ai déjà commencé à faire un script qui m'automatise la tâche pour chaque nouvelle version de Fedora, mais surtout je me demande si je vais pas utiliser le DVD d'install pour mes backups spéciaux... après tout il y a environ 400Mo de place disponible et c'est facile de d'ajouter quelques fichiers de la même façon que nous venons de voir, ça serait dommage de s'en priver ;-)