Maintenant que votre noyau est configuré et compilé et que les fichiers de configuration du système sont correctement paramétrés, il est temps d'installer le programme qui charge le noyau au démarrage de votre machine. Un tel programme est appelé un chargeur de démarrage (« bootloader » en anglais).
Pour l'architecture ${arch}, vous avez le choix entre GRUB et LILO.
Avant d'installer le chargeur de démarrage, vous devriez décider si vous allez utiliser le framebuffer. Ce dernier permet d'utiliser la ligne de commande avec des fonctionnalités graphiques limitées. Vous pouvez par exemple faire afficher le bel écran de démarrage (le « splash screen ») de Gentoo.
Si vous avez configuré votre noyau avec le support pour le framebuffer (ou si vous avez utilisé la configuration de noyau par défaut de genkernel) vous pouvez l'activer en ajoutant vga et/ou video au fichier de configuration de votre chargeur de démarrage.
Vous devez avant tout savoir quel type de dispositif de framebuffer vous utilisez. Si vous utilisez un noyau adapté par Gentoo (comme gentoo-sources), vous devez avoir eu la possibilité de choisir uvesafb en tant que type de pilote VESA (VESA driver type). Si c'est bien le cas, vous utilisez uvesafb et n'avez pas besoin d'ajouter une mention vga dans votre configuration. Sinon, vous devez utiliser le pilote vesafb et devrez ajouter la mention vga à votre configuration.
Le paramètre vga contrôle la résolution et la profondeur des couleurs de votre écran en framebuffer pour vesafb. Comme indiqué dans le fichier /usr/src/linux/Documentation/fb/vesafb.txt (qui est installé lors de l'installation d'un paquet de source du noyau), vous devez lui donner un numéro VESA correspondant à la résolution et la profondeur de couleur voulues.
Le tableau suivant vous donne la liste des résolutions et profondeurs des couleurs disponibles et vous donne la valeur du nombre que vous devez indiquer pour le paramètre vga :
| 640x480 | 800x600 | 1024x768 | 1280x1024 | |
| 256 | 0x301 | 0x303 | 0x305 | 0x307 |
| 32k | 0x310 | 0x313 | 0x316 | 0x319 |
| 64k | 0x311 | 0x314 | 0x317 | 0x31A |
| 16M | 0x312 | 0x315 | 0x318 | 0x31B |
Le paramètre video contrôle les options d'affichage du framebuffer. Il faut lui indiquer le pilote du framebuffer suivi des paramètres de contrôle que vous voulez activer. Toutes les variables sont listées dans le fichier /usr/src/linux/Documentation/fb/vesafb.txt. Voici les options les plus couramment utilisées :
| Contrôle | Description |
| ywrap | Indique que la carte graphique peut réutiliser sa mémoire (c'est-à-dire continuer au début quand elle approche de la fin). |
| mtrr:n |
Configure les registres MTRR où n est 0 - désactivé 1 - pas de cache 2 - « write-back » 3 - « write-combining » 4 - « write-through » |
| mode |
(seulement pour le pilote uvesafb) Configure la résolution, la profondeur de couleurs et le taux de rafraichissement. Vous pouvez par exemple utiliser 1024x768-32@85 pour une résolution de 1024x768, des couleurs 32 bits et un rafraichissement de 85 Hz. |
Un exemple de résultat pour ces deux paramètres pourrait être vga=0x318 video=vesafb:mtrr:3,ywrap ou video=uvesafb:mtrr:3,ywrap,1024x768-32@85. Souvenez-vous de ces configurations, nous en aurons besoin dans pas longtemps.
Comprendre le vocabulaire de GRUB
Pour bien comprendre GRUB, le plus important est de se familiariser avec la manière qu'a GRUB de désigner les disques durs et les partitions. Votre partition Linux /dev/sda1 s'appelle généralement (hd0,0) dans GRUB. Notez les parenthèses nécessaires autour de hd0,0.
GRUB compte les disques durs à partir de zéro plutôt que de « a » et les partitions à partir de zéro au lieu de un. Notez aussi que GRUB ne compte que les disques durs et ignore les périphériques tels que les lecteurs ou graveurs de CD-ROM. Les mêmes principes s'appliquent aux disques SCSI. Ces derniers reçoivent en général des numéros supérieurs à ceux des disques IDE, sauf quand le BIOS est configuré pour démarrer sur les disques SCSI. Si votre machine démarre sur un autre disque (par exemple votre premier disque esclave), c'est le disque sur lequel votre ordinateur démarre qui est considéré comme hd0.
En supposant que vous ayez un disque dur /dev/sda et deux autres sur /dev/sdb et /dev/sdc, alors /dev/sdb7 s'écrit (hd1,6) dans GRUB. Cela peut sembler compliqué, et ça l'est, mais, comme vous le verrez, GRUB offre un système d'aide à la saisie bien pratique si vous avez de nombreux disques durs avec beaucoup de partitions.
Après cette courte introduction, il est temps d'installer GRUB.
Pour installer GRUB, il suffit d'une simple commande emerge.
Exemple de code 1.1 : Installer GRUB |
# emerge grub
|
Bien que GRUB soit maintenant installé, vous devez encore écrire son fichier de configuration pour qu'il puisse démarrer votre noyau et l'installer dans le secteur de démarrage (MBR) du système. Créez le fichier /boot/grub/grub.conf :
Exemple de code 1.1 : Création de /boot/grub/grub.conf |
# nano -w /boot/grub/grub.conf
|
Ci-dessous, vous trouverez deux exemples de fichier grub.conf basés sur les partitions utilisées dans ce guide. Seul le premier exemple est pleinement commenté. Utilisez le nom du fichier que vous avez utilisé quand vous avez copié l'image de votre noyau. La même remarque s'applique à votre image initrd si vous avez utilisé genkernel.
Note : Grub attribue les noms des disques depuis le BIOS. Si vous changez vos paramètres du BIOS, les lettres et les numéros qui désignent vos disques peuvent changer également. Cela signifie que si vous changez l'ordre de démarrage de vos disques, vous aurez peut-être à changer la configuration de grub. |
Note : Si vous avez utilisé le système de fichiers JFS, vous devez ajouter « ro » à la ligne kernel pour que JFS puisse récupérer son journal avant que le système de fichiers ne soit monté en lecture/écriture. |
Exemple de code 1.1 : Exemple de grub.conf sans genkernel |
# Entrée par défaut, 0 est la première, 1 la deuxième, etc. default 0 # Délai en secondes avant de lancer l'entrée par défaut timeout 30 # Jolie image « splash » # Mettez la ligne suivante en commentaire # si votre machine n'a pas de carte graphique. splashimage=(hd0,0)/boot/grub/splash.xpm.gz title Gentoo Linux ${kernel-version} # Partition qui contient l'image du noyau root (hd0,0) kernel /boot/kernel-${kernel-version} root=/dev/sda3 title Gentoo Linux ${kernel-version} (rescue) # Partition qui contient l'image du noyau root (hd0,0) kernel /boot/kernel-${kernel-version} root=/dev/sda3 init=/bin/bb # Les lignes suivantes servent à démarrer un système Windows. # Dans cet exemple, Windows est installé dans /dev/sda6. title Windows XP rootnoverify (hd0,5) makeactive chainloader +1 |
Exemple de code 1.1 : Exemple de grub.conf avec genkernel |
default 0 timeout 30 splashimage=(hd0,0)/boot/grub/splash.xpm.gz title Gentoo Linux ${kernel-version} root (hd0,0) kernel /boot/${genkernel-name} root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/sda3 initrd /boot/${genkernel-initrd} # Uniquement pour démarrer un autre système. title Windows XP rootnoverify (hd0,5) makeactive chainloader +1 |
Si vos partitions sont organisées différemment ou si vous utilisez un autre noyau, ajustez les commandes en conséquence. Assurez-vous de toujours utiliser un chemin relatif au point de montage. En d'autres termes, (hd0,0)/grub/splash.xpm.gz est en fait /boot/grub/splash.xpm.gz, car (hd0,0) sera monté sur /boot.
De plus, si vous avez décidé de partitionner votre disque sans partition /boot séparée, le préfixe /boot est indispensable. Par contre, Si vous avez créé une partition /boot séparée, le préfixe /boot est facultatif et fonctionne grâce à un lien symbolique. En résumé, les exemples ci-dessus devraient fonctionner avec ou sans partition /boot séparée.
Si vous devez passer des options supplémentaires à votre noyau, ajoutez-les simplement à la fin de la commande kernel. Nous lui passons déjà une option (root=/dev/sda3 ou real_root=/dev/sda3), mais vous pouvez en ajouter (par exemple, les options video ou vga pour le framebuffer mentionnées plus haut).
Si vous utilisez un noyau de version 2.6.7 ou supérieure et avez placé un cavalier sur votre disque dur car le BIOS ne gère pas les disques de grande capacité, alors vous devez ajouter sdx=stroke sur la ligne kernel.
Les utilisateurs de genkernel doivent savoir que leur noyau utilise les mêmes options que celles utilisées sur le CD d'installation. Par exemple, si vous avez des périphériques SCSI, vous devez ajouter l'option doscsi.
Enregistrez le fichier grub.conf et quittez votre éditeur. Il faut encore installer GRUB dans votre secteur de démarrage.
Les développeurs de GRUB conseillent d'utiliser la commande grub-install. Cependant, si cette méthode échoue, vous devrez l'installer manuellement.
Veuillez poursuivre avec soit l'installation automatique de GRUB (par défaut), soit l'installation manuelle de GRUB (alternative).
Par défaut : installation automatique de GRUB
Le script grub-install installe GRUB automatiquement, mais, puisque vous êtes dans un environnement « chroot », vous devez créer le fichier /etc/mtab à jour. Ce dernier contient la liste des systèmes de fichiers qui sont montés. Heureusement, il suffit d'utiliser une copie de /proc/mounts en évitant la ligne rootfs (nécessaire si vous n'avez pas de partition /boot séparée). La commande suivante fonctionne avec ou sans partition /boot séparée :
Exemple de code 1.1 : Créer /etc/mtab |
# grep -v rootfs /proc/mounts > /etc/mtab
|
Ensuite, vous pouvez lancer le script grub-install :
Exemple de code 1.1 : Exécuter grub-install |
# grub-install --no-floppy /dev/sda
|
Pour plus d'informations à propos de GRUB, vous pouvez consulter la FAQ de GRUB ou le manuel de GRUB (tous deux en anglais).
Poursuivez avec le redémarrage du système.
Alternative : installation manuelle de GRUB
Pour configurer GRUB, tapez grub. Vous recevrez l'invite GRUB grub> sur la ligne de commande. Vous devez ensuite entrer les bonnes commandes pour installer le secteur de démarrage sur votre disque dur.
Exemple de code 1.1 : Lancer le shell GRUB |
# grub --no-floppy
|
Note : Si votre système n'a pas de lecteur de disquettes, ajoutez l'option --no-floppy à la commande ci-dessus pour empêcher grub de tenter d'accéder au lecteur inexistant. |
Dans notre exemple, nous voulons installer GRUB pour qu'il trouve l'information dont il a besoin sur la partition de démarrage ${/boot}. Nous voulons aussi installer GRUB dans le secteur MBR (N.D.T. : « Master Boot Record », code initialement chargé par le BIOS au démarrage du PC) pour que GRUB soit lancé dès le démarrage de la machine. Évidemment, si vous ne suivez pas exactement notre exemple, vous devez modifier les commandes en conséquence.
Le shell de GRUB contient un mécanisme d'aide à la saisie. Par exemple, si vous tapez « root ( » suivi de la touche <TAB>, GRUB affichera une liste des périphériques possibles (hd0 par exemple). Si vous tapez « root (hd0, » suivi de la touche <TAB>, GRUB affichera une liste des partitions disponibles (hd0,0 par exemple).
Grâce à ce système, installer GRUB devient relativement facile. Allons-y, installons GRUB.
Exemple de code 1.1 : Installer GRUB sur le MBR |
grub> root (hd0,0) (Indique où se trouve la partition /boot.) grub> setup (hd0) (Écrit GRUB dans le MBR.) grub> quit (Quitte le shell GRUB.) |
Note : Si vous voulez installer GRUB dans une partition au lieu du MBR, vous devez indiquer la bonne partition à la commande setup. Par exemple, pour installer GRUB dans /dev/sda3, la commande devient setup (hd0,2). Peu d'utilisateurs voudront faire cela. |
Note : Quand vous recompilerez votre noyau, vous pourrez utiliser make install au lieu de copier les fichiers manuellement. Cette commande copiera les fichiers et mettra GRUB à jour pour vous. |
Pour plus d'informations à propos de GRUB, vous pouvez consulter la FAQ de GRUB ou le manuel de GRUB (tous deux en anglais).
Poursuivez avec le redémarrage du système.
LILO (LInux LOader, ou chargeur Linux) est le chargeur historique de Linux, mais il lui manque des fonctionnalités présentes dans GRUB, ce qui explique que GRUB est en train de prendre le dessus. La raison pour laquelle LILO est encore utilisé est que GRUB ne fonctionne pas sur certains systèmes, alors que LILO fonctionne sur ces mêmes systèmes. Évidemment, beaucoup d'utilisateurs connaissent mieux LILO que GRUB et veulent le conserver. De toute façon, Gentoo supporte les deux, et vous avez apparemment choisi LILO.
Installer LILO est enfantin ; utilisez emerge.
Exemple de code 1.1 : Installer LILO |
# emerge lilo
|
Pour configurer LILO, vous devez créer le fichier /etc/lilo.conf. Lancez votre éditeur préféré (notre exemple utilise nano) et créez le fichier.
Exemple de code 1.1 : Créer /etc/lilo.conf |
# nano -w /etc/lilo.conf
|
Nous vous avions demandé de mémoriser le nom de l'image de votre noyau. Ci-dessous, nous l'utilisons ainsi que les partitions telles que créées plus tôt dans ce manuel. Il convient de différencier deux cas :
Utilisez le nom du fichier que vous avez utilisé quand vous avez copié l'image de votre noyau. La même remarque s'applique à votre image initrd si vous avez utilisé genkernel.
Note : Si vous avez utilisé le système de fichiers JFS, vous devez ajouter « ro » à la ligne kernel pour que JFS puisse récupérer son journal avant que le système de fichiers ne soit monté en lecture/écriture. |
Exemple de code 1.1 : Exemple de /etc/lilo.conf |
boot=/dev/sda # Installe LILO dans le MBR. prompt # Permet à l'utilisateur de sélectionner une autre entrée. timeout=50 # Délai de 5 secondes avant de démarrer l'entrée par défaut. default=gentoo # Définit l'entrée par défaut. # Sans genkernel image=/boot/${kernel-name} label=gentoo # Nom que nous avons attribué à cette entrée. read-only # Démarre avec root en lecture seulement. Ne pas modifier ! root=/dev/sda3 # Endroit où se trouve le système de fichier root. image=/boot/${kernel-name} label=gentoo.rescue # Nom que nous avons attribué à cette entrée. read-only # Démarre avec root en lecture seulement. Ne pas modifier ! root=/dev/sda3 # Endroit où se trouve le système de fichier root. append="init=/bin/bb" # Lance l'environnement de récupération. # Avec genkernel image=/boot/${genkernel-name} label=gentoo read-only root=/dev/ram0 append="init=/linuxrc ramdisk=8192 real_root=/dev/sda3" initrd=/boot/${genkernel-initrd} # Les lignes suivantes sont utilisées pour démarrer un système Windows. # Dans cet exemple, Windows est installé dans /dev/sda6. other=/dev/sda6 label=windows |
Note : Si vos partitions sont agencées d'une autre façon ou si vous utilisez un autre noyau, ajustez les valeurs en conséquence. |
Si vous devez passer d'autres options à votre noyau, ajoutez une commande append dans la section ad hoc. Par exemple, pour passer video pour activer le framebuffer, faites :
Exemple de code 1.1 : Utiliser append pour passer une option au noyau |
image=/boot/${kernel-name} label=gentoo read-only root=/dev/sda3 append="video=vesafb:mtrr,ywrap,1024x768-32@85" |
Si vous utilisez un noyau de version 2.6.7 ou supérieure et avez placé un cavalier sur votre disque dur car le BIOS ne gère pas les disques de grande capacité, alors vous devez ajouter append="sdx=stroke".
Les utilisateurs de genkernel doivent savoir que leur noyau utilise les mêmes options de démarrage que le CD d'installation. Par exemple, si vous avez des périphériques SCSI, vous devez passer l'option doscsi.
Enregistrez le fichier et quittez votre éditeur. Pour terminer, vous devez lancer la commande /sbin/lilo pour que LILO prenne votre fichier /etc/lilo.conf en compte (c'est-à-dire pour l'installer sur le disque). Notez que vous devrez exécuter /sbin/lilo chaque fois que vous installez un noyau.
Exemple de code 1.1 : Terminer l'installation de LILO |
# /sbin/lilo
|
Veuillez consulter la page Wikipedia de LILO pour répondre à vos éventuelles questions à son propos.
Poursuivez avec Redémarrage du système.
Sortez de l'environnement « chroot » et démontez toutes les partitions montées. Ensuite, tapez la commande magique tant attendue : reboot.
Exemple de code 1.1 : Sortie du « chroot », démontage des partitions et redémarrage |
# exit cdimage ~# cd cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo cdimage ~# reboot |
Bien entendu, n'oubliez pas de retirer le CD du lecteur car sinon le système amorcera le CD au lieu de démarrer sur votre nouveau système Gentoo.
Une fois le système Gentoo démarré, concluez avec (Finaliser votre installation).