bouleetbil Guru
Joined: 06 Jul 2004 Posts: 456 Location: Montpellier
|
Posted: Mon May 29, 2006 7:51 pm Post subject: [howto] GentooMove |
|
|
Bonjour,
Ce post est la suite de https://forums.gentoo.org/viewtopic-t-466086.html dans sa version détaillée. De tip passe à howto
Prérequis
1. Une Gentoo qui fonctionne
2. Compilation du noyau avec genkernel
3. Utiliser GRUB comme chargeur ou installer syslinux
Introduction :
Comme Mandrake il est possible de se créer sa propre GentooMove, ce qui peut-être utile en cas de maintenance ou d'installation d'un PC, ou même pour des démonstrations.
L'avantage par rapport à un LiveCD c'est que l'on peut disposer de tous logiciels que l'on désire.
J'ai pris le parti d'utiliser le format de fichier ext3 qui très commun et suffit largement dans ce cadre d'utilisation. Libre à vous de modifier le type de fichier.
Pour la configuration du noyau utiliser une configuration assez générique. La configuration proposé par défaut par genkernel suffit généralement mais selon vos besoins vous pouvez ajouter des options.
Comment sa marche ?
En faite, j'utilise la méthode de détection officielle du LiveCD Gentoo adapté à un boot USB :
L'initrd recherche un fichier, ici c'est GentooMove sur toutes les partitions /dev/sd* puis une fois trouvé, boot sur cette partition.
Juste pour rajouter un petit commentaire le linuxrc de genkernel est très bien fait car documenté et donc très instructif.
1. Création du disque :
J'utiliserais ici /dev/sda1 pour représenter le disque USB vous pouvez l'adapter.
Formater le disque en ext3
Code: |
# mkfs.ext3 /dev/sda1
|
Monter le disque sur /mnt/cle
Code: |
# mount -t ext3 /dev/sda1 /mnt/cle
|
Copier la Gentoo qui fonctionne en ignorant /dev /tmp /proc
Code: |
# cp -aRv /bin /mnt/cle
# cp -aRv /boot /mnt/cle
# cp -aRv /etc /mnt/cle
# cp -aRv /home /mnt/cle
# cp -aRv /lib /mnt/cle
# cp -aRv /opt /mnt/cle
# cp -aRv /root /mnt/cle
# cp -aRv /sbin /mnt/cle
# cp -aRv /sys /mnt/cle
# cp -aRv /usr /mnt/cle
# cp -aRv /var /mnt/cle
# mkdir /mnt/cle/tmp
# mkdir /mnt/cle/proc
# mkdir /mnt/cle/dev
|
Copier le fichier fstab en fstab.new qui servira de base à l'initrd.
Code: |
# cp /mnt/cle/etc/fstab /mnt/cle/etc/fstab.new
|
Editer le fichier /mnt/cle/etc/fstab.new afin de supprimer l'entrée concernant la partition racine. Le fichier fstab sera mis à jour grâce à l'initrd.
Modifier genkernel sur la clé:
Editer /mnt/cle/usr/share/genkernel/generic/linuxrc afin de rajouter une option bootusb à genkernel.
A la ligne 74 ajouter
Code: |
bootusb)
BOOTUSB=1
;;
|
Ajouter à la ligne 244 avant
Code: |
# Run debug shell if requested
rundebugshell
|
Code: |
if [ "${BOOTUSB}" -eq '1' ] ; then
#création point de montage temporaire
mkdir /cle
for a in `find /dev/ -name [sh]d??`
do
mount $a /cle
#attente de 10 secondes pour avoir le temps de monter la clé
sleep 10
#vérification si on trouve le fichier GentooMove
if [ -e /cle/GentooMove ]
then
REAL_ROOT="${a}"
#Mise à jour fstab
rm /cle/etc/fstab 2>/dev/null
cp /cle/etc/fstab.new /cle/etc/fstab
echo "${a} / ext3 defaults 1 1 " >> /cle/etc/fstab
umount /cle 2>/dev/null
break
fi
umount cle 2>/dev/null
done
#suppression point de montage temporaire
rm -R /cle 2>/dev/null
fi
|
Regénerer l'initrd
Code: |
# chroot /mnt/cle
# genkernel --gensplash VotreTheme initrd --install
# exit
|
Création du fichier qui permettra de déterminer quel disque doit être utilisé par l'initrd:
Code: |
# touch /mnt/cle/GentooMove
|
2. Configuration du chargeur :
Pour le chargeur d'amorcage, il y a deux choix possible :
GRUB ou Syslinux.
2.1 GRUB :
2.1.1 Configuration
Mise à jour de grub pour le mode LiveCD (il n'accèpte pas les liens symbolique):
Supprimer /mnt/cle/menu.lst et renommer grub.conf en menu.lst
Code: |
# rm /mnt/cle/boot/grub/menu.lst
# mv /mnt/cle/boot/grub/grub.conf /mnt/cle/boot/grub/menu.lst
|
Ajouter l'option bootusb, scandelay (qui permet de marquer un temps mort le temps de montage de clé)à GRUB.
Préciser que Grub fonctionne en mode LiveCD c'est l'option "(cd)".
Pour cela, editer /mnt/cle/boot/grub/menu.lst afin qu'il ressemble à ceci :
Code: |
title Gentoo-2.6.16-gentoo-r5
root (cd)
kernel (cd)/boot/kernel-genkernel-x86-2.6.16-gentoo-r5 ro root=/dev/ram0 init=/linuxrc splash=verbose,fadein,theme:emergence quiet CONSOLE=/dev/tty1 scandelay bootusb
initrd (cd)/boot/initramfs-genkernel-x86-2.6.16-gentoo-r5
|
2.1.2 Installation de GRUB :
L'installation de GRUB ne fonctionnera que si votre PC permet de démarrer sur l'usb sinon, il faut utiliser syslinux
Code: |
# grub-install /dev/sda1
|
2.1.3 Création d'un lanceur :
Le lanceur permet de démarrer sur un CD pour les PC qui ne peuvent pas booter sur un port USB, puis l'initrd recherchera le disque USB qui contient la GentooMove.
Il faut créer un miniCD.
Tout d'abord copier les fichiers nécessaire :
Code: |
# mkdir /mnt/cle/tmp/lanceur
# cp -aRv /mnt/cle/boot /mnt/cle/tmp/lanceur
|
Création de l'image :
Code: |
# cd /mnt/cle/tmp/lanceur
# mkisofs -J -R -l -V "Lanceur" -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -z -iso-level 4 -c livecd -o /tmp/live.iso /mnt/cle/tmp/lanceur
|
2.2 Syslinux
Syslinux est une alternative à GRUB il peut être installé sur la clé même si votre PC ne permet pas le boot USB.
L'inconvéniant, est que la configuration du boot est figée, on ne pas éditer au démarrage le fichier de configuration comme Grub si besoin.
2.2.1 Installation
Code: |
# chroot /mnt/cle
# emerge syslinux
# exit
|
Recopier le fichier /usr/lib/syslinux/isolinux.bin dans /boot/isolinux
Code: |
# mkdir /mnt/cle/boot/isolinux
# cp -a /mnt/cle/usr/lib/syslinux/isolinux.bin /mnt/cle/boot/isolinux
|
Cette version n'accepte pas de splashcreen. Si vous voulez une image de fond au démmarage, vous pouvez utiliser le fichier isolinux.bin présent sur les LiveCD du site www.frogdev.info. Il s'agit en faite d'une version patché par ubuntu. Le fichier splash.rle représente l'image de fond. Pour utiliser un clavier azerty recopier le fichier fr.kmp dans /mnt/cle/boot/isolinux
Pour installer cette version ubuntu :
Code: |
# cd /tmp
# wget http://www.frogdev.info/live-cd/lanceur.iso
# mkdir /tmp/iso
# mount -o loop,ro -t iso9660 lanceur.iso /tmp/iso
# cp -av /tmp/iso/boot/isolinux/isolinux.bin /mnt/cle/boot/isolinux/isolinux.bin (Isolinux qui accepte le splashscreen)
# cp -av /tmp/iso/boot/isolinux/splash.rle /mnt/cle/boot/isolinux/splash.rle ( Le splashscreen)
# cp -av /tmp/iso/boot/isolinux/fr.kmp /mnt/cle/boot/isolinux/fr.kmp (Pour avoir le clavier azerty)
# umount /tmp/iso
# rm /tmp/iso
# rm /tmp/lanceur.iso
|
2.2.1.2 Création d'un splashscreen
Attention, c'est du 16 couleurs.
Créer votre image au fromat png à l'aide de gimp ou autre.
La convertir et la rendre reconnaissable par isolinux
Code: |
$ convert splash.png splash.ppm
$ ppmtolss16 <splash.ppm >splash.rle
|
2.2.2 Configuration
La configuration de syslinux se rapproche de lilo.
Créer un fichier isolinux.cfg qui contient les options par défaut et les différents boot disponibles.
Code: |
# nano -w /mnt/cle/boot/isolinux.cfg
|
Code: |
timeout 300 => Délai d'attent en milliseconde
prompt 1 => Le noyau par défaut défini plus bas
font lat1_16.psf => La police utilisé (Disponible sur le liveCD frogdev)
KBDMAP fr.kmp => Clavier en azerty
display isolinux.txt => Le fichier qui contient le message de bienvenu au boot
F1 isolinux.txt => Le fichier qui contient l'aide quand on appuie F1 si besoin
F2 aide.txt => Le fichier qui contient l'aide quand on appuie F2 si besoin
label BootUSB
kernel /boot/Gentoo-2.6.16-gentoo-r5
append initrd=/boot/initramfs-genkernel-x86-2.6.16-gentoo-r5 ro root=/dev/ram0 init=/linuxrc splash=verbose,fadein,theme:emergence quiet CONSOLE=/dev/tty1 scandelay bootusb dobladecenter
|
Par rapport à Grub, ajouter l'option "dobladecenter" pour laisser le temps de monter les périphériques USB.
Editer le message de bienvenu, C'est ce qui apparaitra au boot.
nano -w /mnt/cle/boot/isolinux.txt
Code: |
splash.rle => L'image de fond si besoin
LiveUSB Perso.
[Enter] Boot
[F1] Menu
[F2] 0ptions disponibles
|
Editer l'aide si besoin :
Code: |
$ nano -w /mnt/cle/boot/aide.txt
|
Exemple :
Code: |
F1 revient au menu principal
F2 affiche cette aide
|
2.2.3 Installation sur la clé de syslinux
Code: |
# umount /dev/sda1
# syslinux /dev/sda1
|
2.2.4 Création du lanceur
Tout d'abord copier les fichiers nécessaire :
Code: |
# mkdir /mnt/cle/tmp/lanceur
# cp -aRv /mnt/cle/boot /mnt/cle/tmp/lanceur
|
Création de l'image :
Code: |
# cd /mnt/cle/tmp/lanceur
# mkisofs -J -R -l -V "Lanceur" -b boot/isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -z -iso-level 4 -c livecd -o /tmp/live.iso /mnt/cle/tmp/lanceur
|
3. Redémarrage :
Dans le boot si vous pouvez indiquer boot USB, redémarrez sur la clé sinon utilisez le lanceur.
Essayez !!
JE pense avoir fait le tour si j'ai oublié quelque chose dite le moi.
4. Astuces :
4.1 Xorg
Si vous devez utiliser Xorg je vous conseille d'installer x11-misc/mkxf86config afin de générer un xorg.conf adapter à la machine sur laquelle vous allez travailler :
Code: |
# chroot /mnt/cle
# env-update
# emerge x11-misc/mkxf86config
# rc-update add mkxf86config default
# exit
|
Vous pouvez personnaliser xorg en éditant /mnt/cle/etc/X11/xorg.in. Ajouter au moins le clavier français :
Code: |
Option "XkbLayout" "fr"
|
4.2 Memtest
Si vous devez utiliser cette clé à des fin de maintenance ajouter memtest
4.3 petit problème
Si vous êtes en arch ~x86 éditer /etc/init.d/xdm afin d'ajouter à la variable need mkxf86config
Conclusion
J'espère que cela est assez clair et vous serra utile. _________________ L'homme n'est pas fait pour travailler ça le fatigue.
LiveCD Gentoo : http://www.frogdev.info
Gentoo/Freebsd : http://www.frogdev.info/gentoo_freebsd.php |
|