View previous topic :: View next topic |
Author |
Message |
_kal_ l33t
Joined: 04 Mar 2005 Posts: 602 Location: Paris
|
Posted: Sun Jun 26, 2005 9:55 pm Post subject: [HOWTO] Création d'un CD Multi-Distribution |
|
|
Création d'un CD Multi-Distribution
Table des matières:
1/ Introduction
2/ Préparation
3/ Ecriture du fichier isolinux.cfg
4/ Hack de l'installeur Debian
5/ Génération de l'image ISO
6/ Facultatif: hack du LiveCD Gentoo afin de forcer le keymap FR
7/ Conclusion & remerciements
I) Introduction
Afin de réduire le nombre de CDR trainant sur mon bureau, j'ai décidé de créer un CD à usage personnel proposant différentes distributions de linux. Cependant, ce projet pouvant surement intéresser un grand nombre d'entre vous, je me propose de vous partager la mise en place de ce type de CD. Celui-ci sera constitué de 3 distributions différentes:
Gentoo (amd64 & x86)
Debian (amd64 & x86)
Fedora Core 4 (amd64 & x86)
Le choix de la distribution et de l'architecture désirée se fera au boot en renseignant un paramètre comme « gentoo-amd64 » ou encore « fedora ».
Afin de rendre cela possible, nous utiliserons le programme ISOLINUX de H. Peter Anvin disponible ici. L'usage de celui-ci n'est pas l'objectif de ce HOWTO et vous trouverez une documentation assez complète sur ce programme à la page de l'auteur.
II) Préparation
Passons maintenant aux choses sérieuses! Rassemblons les sources dans un seul et même répertoire ~/LiveCD. Celui-ci abritera les répertoires gentoo, debian et fedora qui eux même abriteront des répertoire x86 et amd64 :
Code: |
kal@nice ~/LiveCD $ ll
total 16
drwxr-xr-x 2 kal users 4096 jun 26 17:52 debian
drwxr-xr-x 2 kal users 4096 jun 26 17:52 fedora
drwxr-xr-x 2 kal users 4096 jun 26 17:53 gentoo
drwxr-xr-x 2 kal users 4096 jun 26 17:53 isolinux |
Il suffit maintenant de monter l'iso de nos distributions et d'en copier l'intégraltié dans le répertoire concerné.
Code: |
nice ~ # mkdir /mnt/debian-amd64
nice ~ # mkdir /mnt/debian-x86
nice ~ # mkdir /mnt/gentoo-amd64
nice ~ # mkdir /mnt/gentoo-x86
nice ~ # mkdir /mnt/fedora-amd64
nice ~ # mkdir /mnt/fedora-x86nice ~
nice ~ # mount -o loop,uid=1003,gid=100 /mnt/250GO/Distribution_Linux/debian/debian-31r0a-amd64-netinst.iso /mnt/debian-amd64/
nice ~ # mount -o loop,uid=1003,gid=100 /mnt/250GO/Distribution_Linux/debian/debian-31r0a-i386-netinst.iso /mnt/debian-x86/
nice ~ # mount -o loop,uid=1003,gid=100 /mnt/250GO/Distribution_Linux/gentoo/install-x86-minimal-2005.0.iso /mnt/gentoo-x86/
nice ~ # mount -o loop,uid=1003,gid=100 /mnt/250GO/Distribution_Linux/gentoo/install-amd64-minimal-2005.0.iso /mnt/gentoo-amd64/
nice ~ # exit
kal@nice ~ $ cd /mnt/debian-x86/
kal@nice /mnt/debian-x86 $ tar cf - . | (cd /home/kal/LiveCD/debian/x86/ ; tar xf -)
kal@nice /mnt/debian-x86 $ cd /mnt/debian-amd64/
kal@nice /mnt/debian-amd64 $ tar cf - . | (cd /home/kal/LiveCD/debian/amd64/ ; tar xf -)
kal@nice /mnt/debian-amd64 $ cd /mnt/gentoo-x86/
kal@nice /mnt/gentoo-x86 $ tar cf - . | (cd /home/kal/LiveCD/gentoo/x86/ ; tar xf -)
kal@nice /mnt/gentoo-x86 $ cd /mnt/gentoo-amd64/
kal@nice /mnt/gentoo-amd64 $ tar cf - . | (cd /home/kal/LiveCD/gentoo/amd64/ ; tar xf -) |
Remplacez évidemment les options uid et gid par celles de votre user :
Code: | kal@nice /mnt/gentoo-amd64 $ id
uid=1003(kal) gid=100(users) groupes=6(disk),10(wheel),18(audio),19(cdrom),27(video),35(games),80(cdrw),85(usb),100(users) |
Vous avez surement remarquez que nous avons créé le répertoire pour la distribution Fedora Core mais que nous n'avons monté aucune iso et donc rien copié dans les répertoires ~/LiveCD/fedora/x86 et ~/LiveCD/fedora/amd64. En effet, RedHat propose un fichier boot.iso contenant l'installeur Anaconda des distributions Fedora Core. Nous n'avons besoin que de cela puisque nous ferons une installation via http/ftp/nfs (bah on va pas mettre 2GO de rpm sur le CD quand même ). Ce fichier est disponible ici:
http://download.fedora.redhat.com/pub/fedora/linux/core/4/x86_64/os/images/boot.iso
http://download.fedora.redhat.com/pub/fedora/linux/core/4/i386/os/images/boot.iso
Téléchargez donc ces fichiers et nommez les fedora-boot-x86.iso et fedora-boot-amd64.iso :
Code: | kal@nice ~ $ wget http://download.fedora.redhat.com/pub/fedora/linux/core/4/x86_64/os/images/boot.iso -O fedora-boot-amd64.iso && wget http://download.fedora.redhat.com/pub/fedora/linux/core/4/i386/os/images/boot.iso -O fedora-boot-x86.iso |
Nous pouvons maintenant les monter (en root) :
Code: |
nice ~ # mount -o loop,uid=1003,gid=100 /home/kal/fedora-boot-x86.iso /mnt/fedora-x86/
nice ~ # mount -o loop,uid=1003,gid=100 /home/kal/fedora-boot-amd64.iso /mnt/fedora-amd64/ |
En copier le contenu de celles-ci :
Code: | kal@nice /mnt/fedora-x86 $ tar cf - . | (cd /home/kal/LiveCD/fedora/x86/ ; tar xf -)
kal@nice /mnt/fedora-x86 $ cd /mnt/fedora-amd64/
kal@nice /mnt/fedora-amd64 $ tar cf - . | (cd /home/kal/LiveCD/fedora/amd64/ ; tar xf -) |
Avant de passer à la configuration d'isolinux, il est important de déplacer certains fichiers de Gentoo. En effet, les LiveCD Gentoo utilise la méthode squashfs et je suis parvenu a booter dessus si et seulement si les fichiers « livecd » et « livecd.squashfs » sont situé à la racine de notre futur CD.
Code: | kal@nice ~/LiveCD $ mv gentoo/x86/livecd.squashfs livecd-x86.squashfs
kal@nice ~/LiveCD $ mv gentoo/x86/livecd .
kal@nice ~/LiveCD $ mv gentoo/amd64/livecd.squashfs livecd-amd64.squashfs |
Vous remarquez probablement la présence du fichier « livecd » dans les dossier gentoo/x86 et gentoo/amd64. Celui-ci est un fichier vide propre au fonctionnement de squashfs que nous ne détaillerons pas ici.
III) Ecriture du fichier isolinux.cfg
Lorsque nous démarrerons sur notre futur CD, celui-ci exécutera en premier lieu le fichier isolinux/isolinux.cfg. Vous remarquerez quand dans chacun des répertoires des distributions présente dans notre CD se trouve également ce dossier/fichier. On va donc lire ce fichier sur chacune de nos distribution et y inséré le code nous interessant dans ~/LiveCD/isolinux/isolinux.cfg. Commencons par celui de notre cher Gentoo. Ouvrez le fichier ~/LiveCD/gentoo/x86/isolinux/isolinux.cfg dans votre éditeur de texte favori et observez ce qui nous interesse le plus :
~/LiveCD/gentoo/x86/isolinux/isolinux.cfg :
Code: | label gentoo
kernel gentoo
append initrd=gentoo.igz root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/livecd.squashfs udev nodevfs cdroot vga=791 dokeymap splash=silent,theme:livecd-2005.0
label gentoo-nofb
kernel gentoo
append initrd=gentoo.igz root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/livecd.squashfs udev nodevfs cdroot |
Nous allons adapté ce code à notre structure de la manière suivante et le placer dans ~/LiveCD/isolinux/isolinux.cfg :
Code: | label gentoo
kernel /gentoo/x86/isolinux/gentoo
append initrd=/gentoo/x86/isolinux/gentoo.igz root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/livecd-x86.squashfs udev nodevfs cdroot vga=791 dokeymap splash=silent,theme:livecd-2005.0
label gentoo-nofb
kernel /gentoo/x86/isolinux/gentoo
append initrd=/gentoo/x86/isolinux/gentoo.igz root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/livecd-x86.squashfs udev nodevfs cdroot |
Nous nous occuperons de « l'en tête » du fichier isolinux.cfg en dernier lieu. Répétons l'opération pour Gentoo amd64:
Code: |
label gentoo-amd64
kernel /gentoo/amd64/isolinux/gentoo
append initrd=/gentoo/amd64/isolinux/gentoo.igz root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/livecd-amd64.squashfs udev nodevfs cdroot vga=791 dokeymap splash=silent,theme:livecd-2005.0
label gentoo-amd64-nofb
kernel /gentoo/amd64/isolinux/gentoo
append initrd=/gentoo/amd64/isolinux/gentoo.igz root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/livecd-amd64.squashfs udev nodevfs cdroot
label gentoo-em64t
kernel /gentoo/amd64/isolinux/gentoo-em64t
append initrd=/gentoo/amd64/isolinux/gentoo-em64t.igz root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/livecd-amd64.squashfs udev nodevfs -em64t_kernelopts cdroot vga=791 dokeymap splash=silent,theme:livecd-2005.0
label gentoo-em64t-nofb
kernel /gentoo/amd64/isolinux/gentoo-em64t
append initrd=/gentoo/amd64/isolinux/gentoo-em64t.igz root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/livecd-amd64.squashfs udev nodevfs -em64t_kernelopts cdroot
|
Prenez soin de ne pas attribuer plusieurs fois le même « label ». Celui-ci repésente ce que vous taperez au démarrage : vous devrez entrer gentoo-amd64 pour lancer le kernel /gentoo/amd64/isolinux/gentoo etc...
Répétons maintenant l'opération pour la distribution Fedora. Editez les fichiers ~/LiveCD/fedora/x86/isolinux/isolinux.cfg et ~/LiveCD/fedora/amd64/isolinux/isolinux.cfg afin de « ripper » ce qui vous interesse et l'intégrer à votre propre fichier isolinux.cfg. Voici à quoi cela doit ressembler :
Code: | # Fedora x86
label fedora
kernel /fedora/x86/isolinux/vmlinuz
append initrd=/fedora/x86/isolinux/initrd.img ramdisk_size=8192
label fedora-text
kernel /fedora/x86/isolinux/vmlinuz
append initrd=/fedora/x86/isolinux/initrd.img text ramdisk_size=8192
label fedora-expert
kernel /fedora/x86/isolinux/vmlinuz
append expert initrd=/fedora/x86/isolinux/initrd.img ramdisk_size=8192
label fedora-ks
kernel /fedora/x86/isolinux/vmlinuz
append ks initrd=/fedora/x86/isolinux/initrd.img ramdisk_size=8192
label fedora-lowres
kernel /fedora/x86/isolinux/vmlinuz
append initrd=/fedora/x86/isolinux/initrd.img lowres ramdisk_size=8192
# Fedora amd64
label fedora-amd64
kernel /fedora/amd64/isolinux/vmlinuz
append initrd=/fedora/amd64/isolinux/initrd.img ramdisk_size=9216
label fedora-amd64-text
kernel /fedora/amd64/isolinux/vmlinuz
append initrd=/fedora/amd64/isolinux/initrd.img text ramdisk_size=9216
label fedora-amd64-expert
kernel /fedora/amd64/isolinux/vmlinuz
append expert initrd=/fedora/amd64/isolinux/initrd.img ramdisk_size=9216
label fedora-amd64-ks
kernel /fedora/amd64/isolinux/vmlinuz
append ks initrd=/fedora/amd64/isolinux/initrd.img ramdisk_size=9216
label fedora-amd64-lowres
kernel /fedora/amd64/isolinux/vmlinuz
append initrd=/fedora/amd64/isolinux/initrd.img lowres ramdisk_size=9216 |
Enfin, insérons maintenant le code pour Debian, dont nous garderons juste le noyau 2.6 pour l'architecture x86 (vous pouvez aussi mettre le noyau 2.4 si cela vous interesse...). Apres avoir visualisé les fichiers isolinux.cfg de vos deux Debian, adaptez le et inserez le dans votre isolinux.cfg :
Code: | # Debian x86
label debian
kernel /debian/x86/install/2.6/vmlinuz
append vga=normal initrd=/debian/x86/install/2.6/initrd.gz ramdisk_size=10240 root=/dev/rd/0 devfs=mount,dall rw --
label debian-expert
kernel /debian/x86/install/2.6/vmlinuz
append DEBCONF_PRIORITY=low vga=normal initrd=/debian/x86/install/2.6/initrd.gz ramdisk_size=10240 root=/dev/rd/0 devfs=mount,dall rw --
# Debian amd64
label debian-amd64
kernel /debian/amd64/install/vmlinuz
append vga=normal initrd=/debian/amd64/install/initrd.gz ramdisk_size=10240 root=/dev/rd/0 devfs=mount,dall rw --
label expert
kernel /debian/amd64/install/vmlinuz
append DEBCONF_PRIORITY=low vga=normal initrd=/debian/amd64/install/initrd.gz ramdisk_size=10240 root=/dev/rd/0 devfs=mount,dall rw -- |
Voilà, notre ficier isolinux.cfg est pratiquement prêt, il ne reste plus qu'a inséré le code « d'en tête »:
Code: | KBDMAP fr.kmp
default gentoo
prompt 1
timeout 0
display boot.msg
F1 boot.msg
F2 fedora.msg
F3 gentoo.msg
F4 debian.msg
F5 kernel.msg |
La première ligne sert à définir le keymap FR afin d'avoir le clavier azerty. Vous trouverez le fichier fr.kmp ici :
http://kalhfr.free.fr/linux/divers/fr.kmp
Ce fichier est à placer dans ~/LiveCD/isolinux/. La seconde ligne, comme vous devez vous en doutez, défini le « label » gentoo comme défault et boot sur celui-ci si vous appuyez simplement sur la touche ENTREE. « prompt 1 » force l'affichage du prompt boot: et « timeout 0 » empêche le démarrage automatique sur le label par défault si rien n'est définie. Mettez « timeout 5 » si vous voulez que ca boot sur le label gentoo au bout de 5 secondes si rien n'est entrée, en l'occurence ici Gentoo x86.
Le fichier boot.msg sera affiché au démarrage sur le CD. Voici, à titre indicatif, à quoi ressemble le mien (bien que ce fichier ne soit pas obligatoire) :
Quote: |
^L
- Pour installer Gentoo 2005.0 x86, appuyez sur : ^0f<ENTER>^07.
- Pour installer Gentoo 2005.0 amd64, tapez : ^0fgentoo-amd64^07.
- Pour installer Fedora Core 4 x86, tapez : ^0ffedora^07.
- Pour installer Fedora Core 4 amd64, tapez : ^0ffedora-amd64^07.
- Pour installer Debian Sarge 3.1r0a x86, tapez : ^0fdebian^07.
- Pour installer Debian Sarge 3.1r0a amd64, tapez : ^0fdebian64^07.
- Pour tester la memoire de votre systeme, tapez : ^0fmemtest86^07.
^02[F1-Main] [F2-Fedora] [F3-Gentoo] [F4-Debian] [F5-Avalaible Kernels]^07 |
Les « ^0 » servent à définir les couleurs FG/BG et ^L à effacer l'écran. Vous trouverez plus d'information à ce sujet dans la documentation du programme ISOLINUX.
Enfin, si on appui sur F2 alors cela affiche le fichier fedora.msg, F3 affiche le fichier gentoo.msg etc... Je vous laisse soin d'illustrer vos propres fichiers de message, en vous inspirant peut être de ceux disponible dans les repertoires isolinux/ de nos distributions
Téléchargez maintenant le fichier boot.cat et placez le dans le répertoire ~/LiveCD/isolinux/. Ce fichier est disponible ici :
http://kalhfr.free.fr/linux/divers/boot.cat
De même, il est disponible dans chacun des sous-répertoire isolinux des distributions! Mais il n'est pas fourni avec syslinux donc c'est à nous de se débrouiller
Enfin, placez aussi le fichier isolinux.bin dans ce même répretoire. Ce fichier est vital au fonctionnement d'ISOLINUX puisque c'est celui-ci que est utilisé pour démarrer sur le CD. Vous le trouverez à l'adresse suivante :http://www.kernel.org/pub/linux/utils/boot/syslinux/
Code: |
kal@nice ~ $ wget http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-3.09.tar.bz2 && tar xvfj syslinux-3.09.tar.bz2 && cp syslinux-3.09/isolinux.bin LiveCD/isolinux/
kal@nice ~ $ wget http://kalhfr.free.fr/linux/divers/boot.cat && mv boot.cat LiveCD/isolinux/ |
IV) Hack de l'installeur Debian
Voici la partie la plus fun du HOWTO : modifier l'installeur Debian afin qu'il accepte d'installer à partir du dossier debian/x86 ou debian/amd64! En effet, lors de l'installation, celui-ci cherche les fichiers à la racine du CD et non dans le dossier /debian/x86 (ou /debian/amd64) comme on le voudrait. On va donc tricher
Je tiens a remercier pijalu pour son aide dans cette partie. Sans lui, notre CD ne proposerai pas Debian et ce HOWTO n'existerai pas. Merci
C'est parti ! En root, copier l'initrd de vos deux Debian dans votre home et « gunzippez-les ». Mounter les ensuite dans un dossier /mnt/initrd-x86 et /mnt/initrd-amd64 :
Code: |
nice ~ # cp /home/kal/LiveCD/debian/x86/install/2.6/initrd.gz initrd-x86.gz && cp /home/kal/LiveCD/debian/amd64/install/initrd.gz initrd-amd64.gz
nice ~ # gunzip initrd-*
nice ~ # mount -o loop initrd-amd64 /mnt/initrd-amd64/
nice ~ # mount -o loop initrd-x86 /mnt/initrd-x86/ |
Editez maintenant le fichier /mnt/initrd-x86/var/lib/dpkg/info/cdrom-detect.postinst, et, avant la ligne 135 :
Code: | if [ -e /cdrom/.disk/info ] ; then |
Inserez le code suivant :
Code: |
# Bind de /cdrom/debian/x86 dans /cdrom/
if [ -z $usedir ] ; then
usedir=debian/x86
fi
log "Mounting /cdrom/${usedir} as /cdrom"
mount -o bind /cdrom/${usedir} /cdrom
|
Que fait on ici ? Bah on bind un répertoire enfant de /cdrom dans son répertoire parent /cdrom ! Oui mais lequel ? C'est la qu'intervient la variable $usedir. Si vous souhaitez placez votre distribituion Debian ailleur que dans debian/x86, par exemple dans pingoo/32bit alors vous pouvez le faire a tout moment et sans avoir besoin de remodifié l'initrd de Debian. Indiqué simplement l'option usedir=votre/repertoire/debian dans la ligne append de votre isolinux.cfg. Par exemple :
Code: | label debian
kernel /pingoo/32bit/2.6/vmlinuz
append vga=normal initrd=/pingoo/32bit/install/2.6/initrd.gz usedir=pingoo/32bit ramdisk_size=10240 root=/dev/rd/0 devfs=mount,dall rw -- |
Si rien n'est indiqué, alors le répertoire debian/x86 est utilisé par default. Vous pouvez adaptez ce code à votre guise
Comme vous le savez, l'installeur ejecte le CD à la fin de l'installation. Cependant, si on ne prend pas soin de démonter le bind que nous venons d'effectuer, le CD ne sera pas éjecter. Pour corrigez ce problème, éditez le fichier /mnt/initrd-x86/usr/lib/prebaseconfig.d/15cdrom-detect et copiez la ligne «
umount /cdrom || true » en dessous de celle-ci:
Code: | if [ -n "$CDDEV" ]; then
log "Unmounting and ejecting '$CDDEV'"
umount /cdrom || true
umount /cdrom || true
/target/usr/bin/eject $CDDEV || true
else |
Répétez l'opération pour les fichiers /mnt/initrd-amd64/var/lib/dpkg/info/cdrom-detect.postinst et /mnt/initrd-amd64/usr/lib/prebaseconfig.d/15cdrom-detect.
Voilà, nous avons fini et pouvons démonter les initrd puis les copiez dans le dossier de nos deux Debian:
Code: | nice ~ # umount /mnt/initrd-*
nice ~ # gzip initrd-amd64 && gzip initrd-x86
nice ~ # cp initrd-x86.gz /home/kal/LiveCD/debian/x86/install/2.6/initrd.gz
nice ~ # cp initrd-amd64.gz /home/kal/LiveCD/debian/amd64/install/initrd.gz |
Ce hack a été testé sur une Debian et uniquement sur une Debian! Vous pouvez essayer celui-ci sur une autre distribution si elle recquiert les fichier à la racine du CD, mais il vous faudra trouver quel(s) fichier(s) corriger. Bon amusement
V) Génération de l'image ISO
Dans votre home, tapez ceci :
Code: |
kal@nice ~ $ mkisofs -J -R -v -T -V "LiveCD" -o /chemin/vers/liso/de/sortie/livecd.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table LiveCD/ |
Vous pouvez modifier votre label du cd en changeand "LiveCD" par ce que vous désirez. De même indiquez un chemin correcte pour le fichier de sortie livecd.iso.
Si vous desirez tester votre CD sans le graver, vous pouvez « emergez » le logiciel qemu qui est trés efficace. Pour cela, tapez :
Code: | kal@nice ~ $ qemu -cdrom /chemin/vers/livecd.iso -boot d |
Si vous souhaitez emuler une architecture 64 Bits avec qemu, utilisez le programme qemu-system-x86_64. Génial non ?
VI) Facultatif: hack du LiveCD Gentoo afin de forcer le keymap FR
Vous en avez assez d'oublier de spécifier le keymap pendant la phase de boot et souhaitez être automatiquement en azerty ? Ok c'est parti! En root, tapez ceci:
Code: | nice ~ # cp /home/kal/LiveCD/gentoo/x86/isolinux/gentoo.igz gentoo-x86.gz && cp /home/kal/LiveCD/gentoo/amd64/isolinux/gentoo.igz gentoo-amd64.gz
nice ~ # gunzip gentoo-*
nice ~ # mount -o loop gentoo-x86 /mnt/initrd-x86/ && mount -o loop gentoo-amd64 /mnt/initrd-amd64/
|
Ensuite dans votre éditeur de texte favoris, éditez le fichier /mnt/initrd-x86/linuxrc. Après la ligne 124 qui est :
Code: | read -t 10 -p '<< Load keymap (Enter for default): ' keymap] |
Ajoutez le code :
Code: | # set the fake default
if [ -z $keymap ]
then
keymap=fr
notdefkeymap=false
else
notdefkeymap=true
fi |
Ensuite, sous la ligne : Quote: | if [ -e /lib/keymaps/${keymap}.map ] | Ajoutez :
Quote: | if [ -e /lib/keymaps/${keymap}.map ]
then
# say something about the keymap
$nodefkeymap && echo -e "${GOOD}>>${NORMAL}${BOLD} Loading the ''${keymap}'' keymap...${NORMAL}"
$nodefkeymap || echo -e "${GOOD}>>${NORMAL}${BOLD} Keeping default keymap...${NORMAL}" |
Tout d'abord, avant de vous expliquer comment ca marche, vous pouvez voir qu'on a copié les lignes :
Quote: | $nodefkeymap && echo -e "${GOOD}>>${NORMAL}${BOLD} Loading the ''${keymap}'' keymap...${NORMAL}"
$nodefkeymap || echo -e "${GOOD}>>${NORMAL}${BOLD} Keeping default keymap...${NORMAL}" |
Par conséquent, prenez soin de supprimez la ligne qui suit :
Code: | echo -e "${GOOD}>>${NORMAL}${BOLD} Loading the ''${keymap}'' keymap...${NORMAL}" |
Ceci afin d'eviter de répéter deux fois la meme chose
De même vous pouvez supprimer ces trois lignes qui ne seront jamais executées :
Code: | elif [ "$keymap" = '' ]
then
echo -e "${GOOD}>>${NORMAL}${BOLD} Keeping default keymap...${NORMAL}" |
Bien, analysons maintenant ce code! Si $keymap ne vaut rien, donc si nous avons rien spécifié au promp, alors on intialise keymap=fr. De plus, on initialise la variable notdefkeymap à « false » afin de n'afficher que la ligne "${GOOD}>>${NORMAL}${BOLD} Keeping default keymap...${NORMAL}". Dans l'autre cas, c'est à dire si nous spécifions une keymap, alors on initialise notdefkeymap à « true » ce qui laisse afficher uniquement echo -e "${GOOD}>>${NORMAL}${BOLD} Loading the ''${keymap}'' keymap...${NORMAL}". Fastoche non ?
Supposons que vous souhaitiez entrer le nom d'une keymap. Le clavier n'est pas encore en azerty puisque nous n'avons pas executé le « if ». Pour pallier à ce petit probleme, isérer :
Quote: | cat /lib/keymaps/keymapList*
loadkmap < /lib/keymaps/fr.map
read -t 10 -p '<< Load keymap (Enter for default): ' keymap |
Pour la forme, vous pouvez aussi éditez le fichier /mnt/initrd-x86/lib/keymaps/keymapList et remplacer :
Quote: | Please select a keymap from the following list by typing in the appropriate
name or number. Hit Enter for the default "us/41" US English keymap. |
Par:
Quote: | Please select a keymap from the following list by typing in the appropriate
name or number. Hit Enter for the default "fr/16" Fench keymap. |
Voilà, répétez l'opération avec les fichiers /mnt/initrd-amd64/linuxrc et /mnt/initrd-amd64/lib/keymaps/keymapList. Demontez vos initrd puis copiez les dans le dossier de gentoo :
Code: | nice ~ # umount /mnt/initrd-*
nice ~ # gzip gentoo-amd64
nice ~ # gzip gentoo-x86
nice ~ # cp gentoo-x86.gz /home/kal/LiveCD/gentoo/x86/isolinux/gentoo.igz
nice ~ # cp gentoo-amd64.gz /home/kal/LiveCD/gentoo/amd64/isolinux/gentoo.igz |
That's all!
VII) Conclusion & remerciements
Vous êtes maintenant capable de vous créer votre propre CD Multi-Distribution. Les techniques utilisées ici peuvent surement être adapté à d'autres distributions mais je ne peux l'assurez
Je tiens a remercier pijalu qui s'est beaucoup investi dans ce projet (il a même failli y laisser son /, sisi j'vous assure... ) et qui sans lui ce HOWTO n'existerai pas. C'est lui qui m'a guidé pour le hack de debian/gentoo. Merci!
Kal
Ce document est protégé par la licence Creative Commons : Attribution-NonCommercial-ShareAlike 2.5
Last edited by _kal_ on Wed Jun 29, 2005 4:55 pm; edited 9 times in total |
|
Back to top |
|
|
titix Guru
Joined: 01 Nov 2003 Posts: 343 Location: Paris, France
|
Posted: Sun Jun 26, 2005 10:00 pm Post subject: |
|
|
Génial exactement ce qu'il me fallait.
Merci ! _________________ titix
« La route est longue... mais la voie est libre ! » |
|
Back to top |
|
|
_kal_ l33t
Joined: 04 Mar 2005 Posts: 602 Location: Paris
|
Posted: Sun Jun 26, 2005 10:08 pm Post subject: |
|
|
titix wrote: | Génial exactement ce qu'il me fallait.
Merci ! |
Pas de quoi |
|
Back to top |
|
|
katyanh n00b
Joined: 26 Jun 2005 Posts: 5
|
Posted: Sun Jun 26, 2005 10:27 pm Post subject: bravo! |
|
|
Juste un petit message d'encouragement car je sais que tu travailles beaucoup et que tu fais de gros efforts! bon le français quelques petites fautes à corriger quand même mais sinon ça va t'as le level! ben sinon moi je trouve que c'est très bien (bah oui mon bébé c'est le meilleur attention!). Moi n'ai rien compris mais bon lol ça a l'air plutôt pas mal. Te fais de gros bisouuuussss MOUAH! |
|
Back to top |
|
|
_kal_ l33t
Joined: 04 Mar 2005 Posts: 602 Location: Paris
|
Posted: Sun Jun 26, 2005 10:32 pm Post subject: Re: bravo! |
|
|
katyanh wrote: | Juste un petit message d'encouragement car je sais que tu travailles beaucoup et que tu fais de gros efforts! bon le français quelques petites fautes à corriger quand même mais sinon ça va t'as le level! ben sinon moi je trouve que c'est très bien (bah oui mon bébé c'est le meilleur attention!). Moi n'ai rien compris mais bon lol ça a l'air plutôt pas mal. Te fais de gros bisouuuussss MOUAH! |
Bah oui quand on est 100% Nerdz, on a même sa copine sur le forum gentoo!
Merci ma douce |
|
Back to top |
|
|
pijalu Guru
Joined: 04 Oct 2004 Posts: 365
|
Posted: Mon Jun 27, 2005 12:09 am Post subject: |
|
|
Excellent, ca tue bien
Juste pour la forme (sinon je ne serais pas moi meme):
* Pour la partie debian: isolinux.cfg : Tu dois ajouter usedir=debian/amd64 comme param de kernel
* Pour la partie hack gentoo:
tu peux changer egalement /lib/keymaps/keymapList (qui donne le clavier par default, l'install fait un simple cat du fichier)
en forme de patch c'est
Code: |
--- ori/lib/keymaps/keymapList 2003-09-10 07:45:07.000000000 +0200
+++ new/lib/keymaps/keymapList 2005-06-26 18:36:09.000000000 +0200
@@ -1,5 +1,5 @@
Please select a keymap from the following list by typing in the appropriate
-name or number. Hit Enter for the default "us/41" US English keymap.
+name or number. Hit Enter for the "fr" keymap.
1 azerty 7 cf 13 es 19 il 25 mk 31 ru 37 trf
2 be 8 croat 14 et 20 is 26 nl 32 se 38 trq
|
Pour le linuxrc: tu peux en fait supprimer 3 lignes (facultatif, meme si tu ne tapes rien elle ne seront pas executer car dans ce cas, le code ajouter place la valeur "fr" dedans...)
Code: |
elif [ "$keymap" = '' ]
then
echo -e "${GOOD}>>${NORMAL}${BOLD} Keeping default keymap...${NORMAL}"
|
En patch:
Code: |
--- ori/linuxrc 2005-03-18 22:37:14.000000000 +0100
+++ new/linuxrc 2005-06-26 19:00:06.000000000 +0200
@@ -122,9 +122,21 @@
echo -e "${GOOD}>>${NORMAL}${BOLD} Loading keymaps...${NORMAL}"
cat /lib/keymaps/keymapList
read -t 10 -p '<< Load keymap (Enter for default): ' keymap
+ # set the fake default
+ if [ -z $keymap ]
+ then
+ keymap=fr
+ notdefkeymap=false
+ else
+ notdefkeymap=true
+ fi
+
if [ -e /lib/keymaps/${keymap}.map ]
then
- echo -e "${GOOD}>>${NORMAL}${BOLD} Loading the ''${keymap}'' keymap...${NORMAL}"
+ # say something about the keymap
+ $nodefkeymap && echo -e "${GOOD}>>${NORMAL}${BOLD} Loading the ''${keymap}'' keymap...${NORMAL}"
+ $nodefkeymap || echo -e "${GOOD}>>${NORMAL}${BOLD} Keeping default keymap...${NORMAL}"
+
loadkmap < /lib/keymaps/${keymap}.map
xkeymap=${keymap}
echo ${keymap} | egrep -e "[0-9]+" >/dev/null 2>&1
@@ -133,9 +145,6 @@
fi
mkdir -p /etc/sysconfig
echo "XKEYBOARD=${xkeymap}" > /etc/sysconfig/keyboard
- elif [ "$keymap" = '' ]
- then
- echo -e "${GOOD}>>${NORMAL}${BOLD} Keeping default keymap...${NORMAL}"
else
echo -e "${BAD}!! ${NORMAL}${BOLD}Sorry, but keymap ''${keymap}'' is invalid!${NORMAL}"
chooseKeymap
|
Petite note: Le clavier, au moment d'entrer les choix est tjs en US ... un ptit
Code: |
loadkmap < /lib/keymaps/fr.map
|
avant la ligne
Code: |
read -t 10 -p '<< Load keymap (Enter for default): ' keymap
|
Corrige cela...
[disclam=pour guru]
Pourquoi reecrire le test, il suffisait de faire ce loadkey avant.... ben non, il fallait de toute façon reecrire le test pour inclure lors du passage en elif la creation du sysconfig
[/disclam]
Last edited by pijalu on Mon Jun 27, 2005 7:50 am; edited 1 time in total |
|
Back to top |
|
|
anigel Bodhisattva
Joined: 14 Apr 2003 Posts: 1894 Location: Un petit bled pas loin de Limoges ;-)
|
Posted: Mon Jun 27, 2005 7:43 am Post subject: |
|
|
Joli document, et très bon travail ! Merci d'avoir partagé ! _________________ Il y a 10 sortes d'individus en ce bas-monde : ceux qui causent binaire, et les autres. |
|
Back to top |
|
|
Adrien Advocate
Joined: 13 Jul 2004 Posts: 2308 Location: Bretagne
|
Posted: Mon Jun 27, 2005 7:51 am Post subject: |
|
|
Merci pour ce howto _kal_ et..... content que tu aies réussi!
PS: Ton avatar déchire tout!! |
|
Back to top |
|
|
kwenspc Advocate
Joined: 21 Sep 2003 Posts: 4954
|
Posted: Mon Jun 27, 2005 7:54 am Post subject: |
|
|
un bon ptit howto comme je les aime
Adrien wrote: | PS: Ton avatar déchire tout!! |
oui d'ailleurs _kal_, ta copine est pas jalouse? |
|
Back to top |
|
|
Adrien Advocate
Joined: 13 Jul 2004 Posts: 2308 Location: Bretagne
|
Posted: Mon Jun 27, 2005 8:00 am Post subject: |
|
|
kwenspc wrote: | un bon ptit howto comme je les aime
Adrien wrote: | PS: Ton avatar déchire tout!! |
oui d'ailleurs _kal_, ta copine est pas jalouse? |
Meuhhh non!! C'est justement sa copine qu'on voit sur la photo!! |
|
Back to top |
|
|
katyanh n00b
Joined: 26 Jun 2005 Posts: 5
|
Posted: Mon Jun 27, 2005 8:37 am Post subject: |
|
|
non d'abord son avatar il déchire rien du tout d'ailleurs j'ai pas compris pourquoi il a mis celui-là parce que la fille est trop moche! (et d'abord je ne suis pas jalouse je suis mieux qu'elle ) et sinon non ce n'est pas moi du tout sur son avatar lol j'arrive même pas à mettre le mien |
|
Back to top |
|
|
_kal_ l33t
Joined: 04 Mar 2005 Posts: 602 Location: Paris
|
Posted: Mon Jun 27, 2005 9:41 am Post subject: |
|
|
pijalu wrote: | Excellent, ca tue bien
Juste pour la forme (sinon je ne serais pas moi meme):
* Pour la partie debian: isolinux.cfg : Tu dois ajouter usedir=debian/amd64 comme param de kernel
* Pour la partie hack gentoo:
|
Bonjour monsieur
Merci pour le tips sur le hack gentoo, j'ai corrigé cela. Cependant, je ne vois pas ce que tu veux dire pour l'installeur debien. Il n'y a pas besoin de mettre debian/amd64 comme param kernel puisque ceci est le default. En effet, je dit aux lecteurs :
Quote: | Répétez l'opération pour les fichiers /mnt/initrd-amd64/var/lib/dpkg/info/cdrom-detect.postinst et /mnt/initrd-amd64/usr/lib/prebaseconfig.d/15cdrom-detect. | Par conséquent, je pense qu'il sont suffisemment logique pour mettre :
Code: | # Bind de /cdrom/debian/x86 dans /cdrom/
if [ -z $usedir ] ; then
usedir=debian/amd64
fi
log "Mounting /cdrom/${usedir} as /cdrom"
mount -o bind /cdrom/${usedir} /cdrom |
|
|
Back to top |
|
|
_kal_ l33t
Joined: 04 Mar 2005 Posts: 602 Location: Paris
|
Posted: Mon Jun 27, 2005 9:43 am Post subject: |
|
|
anigel wrote: | Joli document, et très bon travail ! Merci d'avoir partagé ! |
Y'a pas de quoi
Adrien wrote: | Merci pour ce howto _kal_ et..... content que tu aies réussi!
PS: Ton avatar déchire tout!! |
Héhé, vui d'ailleurs ma copine elle a trop la rage quand je met des asiatiques en avatar (elle en est une aussi pourtant)
kwenspc wrote: | oui d'ailleurs _kal_, ta copine est pas jalouse? |
Elle dit que non mais bon : on connait les femmes... On sait à quoi s'en tenir |
|
Back to top |
|
|
kernelsensei Bodhisattva
Joined: 22 Feb 2004 Posts: 5619 Location: Woustviller/Moselle/FRANCE (49.07°N;7.02°E)
|
Posted: Mon Jun 27, 2005 9:58 am Post subject: |
|
|
Super le Howto Merci, faudra que je teste ! _________________ $ ruby -e'puts " .:@BFegiklnorst".unpack("x4ax7aaX6ax5aX15ax4aax6aaX7ax2aX5aX8 \
axaX3ax8aX4ax6aX3aX6ax3ax3aX9ax4ax2aX9axaX6ax3aX2ax4ax3aX4aXaX12ax10aaX7a").join' |
|
Back to top |
|
|
Adrien Advocate
Joined: 13 Jul 2004 Posts: 2308 Location: Bretagne
|
Posted: Mon Jun 27, 2005 10:01 am Post subject: |
|
|
_kal_ wrote: | Elle dit que non mais bon : on connait les femmes... On sait à quoi s'en tenir |
Tiens, ça c'est un troll! Mais pas trop le genre qu'on a l'habitude de voir ici! |
|
Back to top |
|
|
_kal_ l33t
Joined: 04 Mar 2005 Posts: 602 Location: Paris
|
Posted: Mon Jun 27, 2005 10:15 am Post subject: |
|
|
kernel_sensei wrote: | Super le Howto Merci, faudra que je teste ! |
Ca fait plaisir de rendre service à ceux qui nous aide
Adrien wrote: | Tiens, ça c'est un troll! Mais pas trop le genre qu'on a l'habitude de voir ici! |
Ne vous inquiétez pas, j'ai prévenu ma douce de ne pas poser de question sur l'O$ qu'elle utilise |
|
Back to top |
|
|
kwenspc Advocate
Joined: 21 Sep 2003 Posts: 4954
|
Posted: Mon Jun 27, 2005 10:18 am Post subject: |
|
|
_kal_ wrote: | Ne vous inquiétez pas, j'ai prévenu ma douce de ne pas poser de question sur l'O$ qu'elle utilise |
ouh tiou tiou tou : c'est pas encore une geekette! mon ptit _kal_ : faut la convertir!
(c'est ce que j'ai fait trés rapidement et maintenant elle frime avec ça ) |
|
Back to top |
|
|
_kal_ l33t
Joined: 04 Mar 2005 Posts: 602 Location: Paris
|
Posted: Mon Jun 27, 2005 10:28 am Post subject: |
|
|
kwenspc wrote: | _kal_ wrote: | Ne vous inquiétez pas, j'ai prévenu ma douce de ne pas poser de question sur l'O$ qu'elle utilise |
ouh tiou tiou tou : c'est pas encore une geekette! mon ptit _kal_ : faut la convertir!
(c'est ce que j'ai fait trés rapidement et maintenant elle frime avec ça ) |
La mienne est têtue comme une mule En plus avec tout les virus/spyware/ver qu'elle se tape, ca ne pourrai qu'être positif |
|
Back to top |
|
|
pijalu Guru
Joined: 04 Oct 2004 Posts: 365
|
Posted: Mon Jun 27, 2005 10:49 am Post subject: |
|
|
_kal_ wrote: |
... Par conséquent, je pense qu'il sont suffisemment logique pour mettre...
|
MDR
Je conclus que tu as compris cke je voulais dire... bah, c kom tu le sents |
|
Back to top |
|
|
_kal_ l33t
Joined: 04 Mar 2005 Posts: 602 Location: Paris
|
Posted: Mon Jun 27, 2005 10:55 am Post subject: |
|
|
pijalu wrote: | _kal_ wrote: |
... Par conséquent, je pense qu'il sont suffisemment logique pour mettre...
|
MDR
Je conclus que tu as compris cke je voulais dire... bah, c kom tu le sents |
Vui je pense que le lecteur comprendra que pour le cas de l'amd64, les occurences x86 sont remplacées par amd64 |
|
Back to top |
|
|
Ti momo Apprentice
Joined: 29 Jun 2004 Posts: 198 Location: Paris
|
|
Back to top |
|
|
boozo Advocate
Joined: 01 Jul 2004 Posts: 3193
|
|
Back to top |
|
|
_kal_ l33t
Joined: 04 Mar 2005 Posts: 602 Location: Paris
|
Posted: Mon Jun 27, 2005 12:41 pm Post subject: |
|
|
boozo wrote: | 'alute
merci à toi (enfin a vous deux ) pour cette initiative comme quoi une idée simple peu rendre souvent bien des services... et bel exemple d'entraide et de réussite pour ce mini projet |
Ouaip c'est beau l'entraide, ca sert aussi à ça l'Open Source
boozo wrote: |
vais m'y mettre a ton 'live-six-in-one' et virer des cds et des iso... m'fera de la place tiens |
C'est la raison qui ma pousser à créer ce CD
boozo wrote: |
HS: bienvenue a ta compagne également... une présence féminine est toujours appréciable - et avec tout le respect qu'il vous est dû a tous deux - d'autant plus lorsqu'elle est sympa et... ravissante |
Héhé merci |
|
Back to top |
|
|
Trevoke Advocate
Joined: 04 Sep 2004 Posts: 4099 Location: NY, NY
|
Posted: Mon Jun 27, 2005 1:08 pm Post subject: |
|
|
Oha le ouf! Joli travail, c'est clair que ca me servira un jour, ca.. _________________ Votre moment detente
What is the nature of conflict? |
|
Back to top |
|
|
katyanh n00b
Joined: 26 Jun 2005 Posts: 5
|
Posted: Mon Jun 27, 2005 3:35 pm Post subject: |
|
|
boozo wrote: | 'alute
merci à toi (enfin a vous deux ) pour cette initiative comme quoi une idée simple peu rendre souvent bien des services... et bel exemple d'entraide et de réussite pour ce mini projet
vais m'y mettre a ton 'live-six-in-one' et virer des cds et des iso... m'fera de la place tiens
HS: bienvenue a ta compagne également... une présence féminine est toujours appréciable - et avec tout le respect qu'il vous est dû a tous deux - d'autant plus lorsqu'elle est sympa et... ravissante |
lol c'est gentil pour le compliment mais la fille qu'il a mis sur son avatar c'est pas moi |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|