Gentoo Logo

[ << ] [ < ] [ Sommaire ] [ > ] [ >> ]


10. Configurer le chargeur de démarrage

Table des matières :

10.a. Faites votre choix

Introduction

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).

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.

Facultatif : le framebuffer

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 vesafb-tng en tant que type de pilote VESA (VESA driver type), c'est la configuration par défaut pour les sources du noyau. Si c'est bien le cas, vous utilisez vesafb-tng 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 (vesafb pour un noyau 2.6 ou vesa pour un noyau 2.4) 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 vesafb-tng)
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.

10.b. Par défaut : GRUB

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/hda1 (disque IDE) ou /dev/sda1 (disque SCSI ou SATA) 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 que hda, 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/hda, un lecteur de CD-ROM /dev/hdb, un graveur /dev/hdc, un second disque dur /dev/hdd et aucun disque SCSI, /dev/hdd7 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.

Installation de GRUB

Pour installer GRUB, il suffit d'une simple commande emerge.

Exemple de code 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 2 : 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.

  • Le premier grub.conf est destiné aux utilisateurs qui n'ont pas compilé leur noyau avec genkernel.
  • Le deuxième grub.conf est destiné aux utilisateurs qui ont construit leur noyau avec 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 3 : 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 2.6.19-r5
# Partition qui contient l'image du noyau
root (hd0,0)
kernel /boot/kernel-2.6.19-r5 root=/dev/hda3

title=Gentoo Linux 2.6.19-r5 (rescue)
# Partition qui contient l'image du noyau
root (hd0,0)
kernel /boot/kernel-2.6.19-r5 root=/dev/hda3 init=/bin/bb

# Les lignes suivantes servent à démarrer un système Windows.
# Dans cet exemple, Windows est installé dans /dev/hda6.
title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1

Exemple de code 4 : Exemple de grub.conf avec genkernel

default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title=Gentoo Linux 2.6.19-r5
root (hd0,0)
kernel /boot/kernel-genkernel-x86-2.6.19-gentoo-r5 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev
initrd /boot/initramfs-genkernel-x86-2.6.19-gentoo-r5

# Uniquement pour démarrer un autre système.
title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1

Note : Le paramètre udev à la fin de la ligne « kernel » est nécessaire à cause d'un bogue dans certaines version de genkernel. Ne l'ajoutez que si vous utilisez udev. Ce dernier est utilisé par défaut.

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 mots, (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/hda3 ou real_root=/dev/hda3), 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 hdx=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 5 : Créer /etc/mtab

# grep -v rootfs /proc/mounts > /etc/mtab

Ensuite, vous pouvez lancer le script grub-install :

Exemple de code 6 : Exécuter grub-install

# grub-install --no-floppy /dev/hda

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 7 : 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 /dev/hda1. 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 8 : 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/hda3, 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.

10.c. Alternative : LILO

Installer LILO

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 9 : Installer LILO

# emerge lilo

Configurer 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 10 : 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 :

  • Les noyaux compilés sans genkernel.
  • Les noyaux compilés avec genkernel.

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 11 : Exemple de /etc/lilo.conf

boot=/dev/hda        # 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-2.6.19-gentoo-r5
  label=gentoo       # Nom que nous avons attribué à cette entrée.
  read-only          # Démarre avec root en lecture seulement. Ne pas modifier !
  root=/dev/hda3     # Endroit où se trouve le système de fichier root.

image=/boot/kernel-2.6.19-gentoo-r5
  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/hda3        # 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/kernel-genkernel-x86-2.6.19-gentoo-r5
  label=gentoo
  read-only
  root=/dev/ram0
  append="init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev"
  initrd=/boot/initramfs-genkernel-x86-2.6.19-gentoo-r5

# Les lignes suivantes sont utilisées pour démarrer un système windows.
# Dans cet exemple, Windows est installé dans /dev/hda6.
other=/dev/hda6
  label=windows

Note : Le paramètre udev à la fin de la ligne « kernel » est nécessaire à cause d'un bogue dans certaines version de genkernel. Ne l'ajoutez que si vous utilisez udev. Ce dernier est utilisé par défaut.

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 12 : Utiliser append pour passer une option au noyau

image=/boot/kernel-2.6.19-gentoo-r5
  label=gentoo
  read-only
  root=/dev/hda3
  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="hdx=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 13 : 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.

10.d. 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 14 : 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.


[ << ] [ < ] [ Sommaire ] [ > ] [ >> ]


Imprimer

Dernière mise à jour le 2 juin 2007

Résumé : Plusieurs chargeurs sont disponibles. Chaque chargeur est configuré différemment. Ce chapitre explique les différents choix qui s'offrent à vous et décrit comment configurer le chargeur que vous aurez sélectionné.

Sven Vermeulen
Auteur

Grant Goodyear
Auteur

Roy Marples
Auteur

Daniel Robbins
Auteur

Chris Houser
Auteur

Jerry Alexandratos
Auteur

Seemant Kulleen
Développeur Gentoo x86

Tavis Ormandy
Développeur Gentoo Alpha

Jason Huebel
Développeur Gentoo AMD64

Guy Martin
Développeur Gentoo HPPA

Pieter Van den Abeele
Développeur Gentoo PPC

Joe Kallar
Développeur Gentoo SPARC

John P. Davis
Correcteur

Pierre-Henri Jondot
Correcteur

Eric Stockbridge
Correcteur

Rajiv Manglani
Correcteur

Jungmin Seo
Correcteur

Stoyan Zhekov
Correcteur

Jared Hudson
Correcteur

Colin Morey
Correcteur

Jorge Paulo
Correcteur

Carl Anderson
Correcteur

Jon Portnoy
Correcteur

Zack Gilburd
Correcteur

Jack Morgan
Correcteur

Benny Chuang
Correcteur

Erwin
Correcteur

Joshua Kinard
Correcteur

Tobias Scherbaum
Correcteur

Joshua Saddler
Correcteur

Gerald J. Normandin Jr.
Relecteur

Donnie Berkholz
Relecteur

Ken Nowack
Relecteur

Lars Weiler
Contributeur

Xavier Neys
Correcteur, traducteur

Camille Huot
Traducteur

Benjamin Girault
Traducteur

Olivier Fisette
Traducteur

Olivier Roomans
Traducteur

Vincent Strubel
Traducteur

Donate to support our development efforts.

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

php|architect

php|architect

Copyright 2001-2007 Gentoo Foundation, Inc. Questions, Comments? Contact us.