[Installation] Créer son propre CD d'installation

Bonjour tout le monde,

je souhaite me faire un CD d’installation de Debian totalement personnalisé, j’ai déjà lu pas mal de documentation (jigdo, debian-cd, DebianCustomCD)… Je suis encore loin d’être expert en la matière mais j’aimerai pouvoir le personnaliser de façon à ce qu’il intègre le dernier noyau (si possible), faire qu’il installe certains paquetages par défaut, et même que d’office lorsque je boote sur le CD, il ne me demande pas la langue ni l’encodage mais que ça soit en “dur” dans le CD

Cela est-il réalisable?

D’avance merci, j’en apprends chaque jour grâce à vous :smt004

Ce n’est pas la réponse mais ça peut aider : debian-live.alioth.debian.org/

Merci, j’y ai jeté un oeil, instructif :slightly_smiling:

En attendant, j’ai trouvé quelques liens qui valent leur pesant de cacahuètes (je pense que fran.b les as déjà parcourus) :
[ol]
[li]http://wiki.debian.org/DebianInstaller/Modify/CustomKernel[/li]
[li]http://wiki.debian.org/DebianInstaller/Modify/CD[/li]
[li]http://wiki.debian.org/DebianCustomCD[/li]
[li]http://wiki.debian.org/Simple-CDD[/li][/ol]

Ceci me permettrait d’arriver à faire plusieurs choses,
[ul]
[li]Alleger la netinstall en ôtant les modules inutiles (pcmcia?)[/li]
[li]Disposer de mon noyau sans avoir à passer par un noyau générique lors du démarrage de Debian[/li]
[li]Intégrer divers paquets “utiles” et mettre en place les fichiers de configurations (nut, apache2, etc.)[/li]
[li]Avoir un système en français grâce aux locales-fr[/li][/ul]

En bref, un système prêt à l’emploi !

Par contre, je n’ai pas trouvé mon bonheur dans le sens où ce que je cherche à modifier c’est surtout les étapes d’installations elle même. Je m’explique, j’aimerai que lorsque je boote sur le CD d’installation, que je n’ai pas à choisir le langage et clavier pour l’installation ! Vous savez quel fichier s’occupe de ça?

Merci beaucoup :slightly_smiling:

Personne n’a d’idée?

Je m’étais penché sur le problème et avait décortiqué les CD sarges. Il faut aller modifier l’initrd et les scripts d’installation (dans /usr/lib ou /lib si ma mémoire est bonne) mais l’installateur a du être modifié depuis…

J’ai monté l’iso de la netinstall sur le loopback et j’ai regardé le contenu de ce dernier :

# ls autorun.bat autorun.inf debian dists doc install install.386 isolinux md5sum.txt pics pool README.html README.mirrors.html README.mirrors.txt README.txt tools

Rien de ressemblant à /lib et /usr/lib

Salut.
Pour automatiser une installation tu peux créer un fichier preseed.conf.Une petite recherche sur debian.org t’en dira davantage.Sinon je serais du même avis que dmon : utiliser les scripts debian-live, je pense que ceux-ci devraient te permettre de complètement personnaliser ton installation (pour ça il ne faut pas utiliser la méthode simple).

Je viens de jeter un rapide coup d’oeil et ça à l’air de coïncider parfaitement avec mes attentes !

Je vous tiens au courant :slightly_smiling:

[size=85]buchs, rarement déçu de son tour sur debian-fr :slightly_smiling:[/size]

J’ai monté l’iso de la netinstall sur le loopback et j’ai regardé le contenu de ce dernier :

# ls autorun.bat autorun.inf debian dists doc install install.386 isolinux md5sum.txt pics pool README.html README.mirrors.html README.mirrors.txt README.txt tools

Rien de ressemblant à /lib et /usr/lib[/quote]
J’ai dit il faut modifier l’initrd, tu dois changer install.386/initrd.gz. Il faut modifer les fichiers dans ce système de fichiers mais c’est assez long à faire.

Ah oui, je viens de trouver comment faire, je zieute tout ceci attentivement, ça ne peut qu’être instructif :slightly_smiling:

Vraiment content, le fichier preseed.cfg, c’est du pur bonheur, je viens de tester “mon” iso, et ça fonctionne à merveille :smiley:

Par contre, sauriez vous comment intégrer un noyau personnalisé (mon mien quoi)?

Merci beaucoup

Tant qu’à faire, indique tes manipulations, c’est bien de dire «yeah, chouette ça marche…» mais les lecteurs éventuels sont frustrés.

Pour ta question, il te suffit de mettre les paquets correspondants en plus. Si par contre tu veux remplacer le noyau d’installation, là c’est plus compliqué: en gros tu dois modifier le noyau du CD, les modules dans l’initrd, les paquets du noyau dans le répertoire pool du CD. Cela signifie crée les paquets debs et udebs correspondant à ton noyau. Il te faut faire

apt-get source linux-kernel-di-… (dépend de ton architecture) et créer le ou les paquets de modules associés à ce noyau (J’avais fait un seul gros paquet nommé modules-2.6.14-386-di_1.17_i386.udeb à l’époque). Tu dois mettre à jour le noyau du CD install.386/vmlinuz, et les modules de l’initrd ainsi que le fichier config et System.map. Bref, tu as du boulot, c’est assez pénible car si le CD ne boute pas il faut tout refaire.

[quote=“fran.b”]Tant qu’à faire, indique tes manipulations, c’est bien de dire «yeah, chouette ça marche…» mais les lecteurs éventuels sont frustrés.

Pour ta question, il te suffit de mettre les paquets correspondants en plus. Si par contre tu veux remplacer le noyau d’installation, là c’est plus compliqué: en gros tu dois modifier le noyau du CD, les modules dans l’initrd, les paquets du noyau dans le répertoire pool du CD. Cela signifie crée les paquets debs et udebs correspondant à ton noyau. Il te faut faire

apt-get source linux-kernel-di-… (dépend de ton architecture) et créer le ou les paquets de modules associés à ce noyau (J’avais fait un seul gros paquet nommé modules-2.6.14-386-di_1.17_i386.udeb à l’époque). Tu dois mettre à jour le noyau du CD install.386/vmlinuz, et les modules de l’initrd ainsi que le fichier config et System.map. Bref, tu as du boulot, c’est assez pénible car si le CD ne boute pas il faut tout refaire.[/quote]

C’est vrai que sur le coup là, j’ai pas assuré, donc on met le système en place :

modprobe loop mkdir tmp-mini mini mount -o loop mini.iso tmp-mini rsync -a -H --exclude=TRANS,TBL tmp-mini mini umount -l tmp-mini cd mini

Nous voici donc paré :slightly_smiling:
Préparons le fichier preseed.cfg (exemple : debian.org/releases/sarge/ex … reseed.txt)
Une fois configuré comme voulu, on modifie l’initrd en conséquence (supposons qu’il soit à la racine de l’iso) :

mkdir temp cp initrd.gz temp cd temp gzip -dc initrd.gz|cpio -id # décompresse l'initrd cp ~/preseed.cfg . # copie de notre fichier de configuration à la racine de l'initrd rm initrd.gz # suppression de l'initrd.gz que l'on vient de décompresser find .|cpio -H newc -o >../new-initrd # création du nouvel initrd cd .. # remonte a la racine de l'iso (dans mon cas) gzip new-initrd # compression du nouvel initrd mv new-initrd.gz initrd.gz # remplacement de l'ancien initrd par le nouveau rm -rf temp/ # suppression du dossier temporaire

Voilà qui est fait. Pensez à vérifier s’il n’y a un fichier avec les sommes MD5 à mettre à jour !
Puis on recréé la nouvelle ISO avec :

Et voilà :smt003

Concernant le noyau, je parle bien sûr du noyau de la distribution que je vais installer et non celui de l’installeur (pas besoin de le modifier en fait)

Merci

Je tiens à préciser, avec la netinstall, ça passe sans soucis, l’ISO intègre tous les modules nécessaires :slightly_smiling:

Par contre, je tente de faire une mini ISO pour éviter d’avoir à charger mon lecteur CD car celui me fait toujours planté mon installation. J’ai donc téléchargé la mini ISO ici (ftp.debian.org/debian/dists/sid/ … s/netboot/), seulement le noyau que contient l’initrd n’inclue pas les drivers pour l’IDE et bloque sur certains SATA (il me semble), donc j’vais tenter de recompiler le noyau de l’initrd pour voir ce que ça donne :smiling_imp: ).

À moins que vous ayez une meilleure idée :slightly_smiling: