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

Pour l'architecture x86, vous avez le choix entreGRUB, GRUB2 et LILO.

Note : il se pourait que GRUB2 ne soit pas encore stabilisé au moment où vous lirez ceci. Néanmoins, la stabilisation est attendue très prochainement, c'est pourquoi nous documentons GRUB et GRUB2 et retirerons ce qui concerne GRUB après stabilisation.

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 deveza avant tout savoir quel est le périphérique de framebuffer que vous utilisez. Vous devriez avoir utilisé uvesafb en tant que pilote VESA .

L'instruction video gère les options d'affichage du périphérique de framebuffer. Il faut lui donner le pilote du framebuffer suivi des instructions de contrôle que vous voulez activer. Toutes les variables sont listées dans /usr/src/linux/Documentation/fb/uvesafb.txt. Les options les plus employées sont :

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 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 video=uvesafb:mtrr:3,ywrap,1024x768-32@85. Souvenez-vous de ces configurations, nous en aurons besoin dans pas longtemps.

Maintenant continuez en installant GRUB, GRUB2 ou LILO.

10.b. Default: Utiliser GRUB Legacy

Qu'est-ce que Legacy?

GRUB a été retravaillé et une nouvelle version appelée GRUB2 est désormais disponible. Le code de GRUB2 est très différent de celui de GRUB, c'est pourquoi la version précédente de GRUB est maintenant appelée "GRUB Legacy" (« GRUB patrimoniale » en français).

Nous recommandons de démarrer avec GRUB2 dès que cette version est disponible. La migration de GRUB à GRUB2 est documentée en ligne Les instructions de cette section se rapporte à "GRUB Legacy" disparaîtront du manuel dès la stabilisation link="#grub2">GRUB2.

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.

Installation de GRUB

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

Exemple de code 2.1 : installer GRUB

# emerge sys-boot/grub:0

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.2 : création de /boot/grub/grub.conf

# nano -w /boot/grub/grub.conf

Nous allons maintenant écrire un fichier grub.conf. Assurez-vous d'utiliser votre nom d'image du noyau et, si approprié, votre nom de fichier initrd.

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 2.3 : exemple de grub.conf

# 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 3.3.8
# Partition qui contient l'image du noyau ( ou le système d'exploitation)
root (hd0,0)
kernel /boot/kernel-3.3.8 root=/dev/sda3

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

# Les lignes suivantes n'existe que si vous démarrez un système Windows en multi-boot.
# Dans cet exemple, Windows est installé dans /dev/sda6.
title Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1

Si lors de la compilation du noyau, vous avez choisi d'inclure un disque virtuel de démarrage (initramfs) sur lequel démarrer, vous devez changer la configuration pour faire référence à ce disque virtuel et pour indiquer à initramfs, où se trouve le disque physique root :

Exemple de code 2.4 : extrait de GRUB pour une compilation incluant un initramfs

title Gentoo Linux 3.3.8
root (hd0,0)
kernel /boot/3.3.8 real_root=/dev/sda3
initrd /boot/initramfs-genkernel-x86-3.3.8-gentoo

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 le fichier de configuration de votre chargeur de démarrage contient le paramètre real_root (racine réelle), utilisez le paramètre real_rootflags pour définir les options de montage de système de fichiers root.

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 (en remplaçant sdx par le répère du disque concerné).

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, de manière à ce qu'il soit exécuté automatiquement au 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 2.5 : créer /etc/mtab

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

Si vous utilisez des disques Linux virtio , vous devez dire à Grub où trouver les disques sinon la commande grub-install échouera. Ceci se fait en ajoutant la définition du périphérique au fichier device.map :

Exemple de code 2.6 : ajouter le disque virtio à la carte des périphériques

# echo "(hd0)	/dev/vda" >> /boot/grub/device.map

Ensuite, vous pouvez lancer le script grub-install :

Exemple de code 2.7 : 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 2.8 : 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/sda1. 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 2.9 : 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.

Pour plus d'informations à propos de GRUB, vous pouvez consulter la FAQ de GRUB ou le manuel de GRUB (tous deux en anglais), ou lire info grub dans votre terminal.

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 3.1 : 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 3.2 : 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 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 une ligne append="ro" après chaque item de démarrage (section) 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.3 : exemple de /etc/lilo.conf

boot=/dev/sda             # Installe LILO dans le MBR
prompt                    # Donne à l'utilisateur la possibilité de choisir une autre section
timeout=50                # Attendre 5 (cing) secondes avant de démarrer la section par défaut
default=gentoo            # Quand le délai s'est écoulé démmarre la section "gentoo" 

image=/boot/kernel-3.3.8-gentoo
  label=gentoo            # Non donné à cette section
  read-only               # Démarrer avec une racine en lecture seule. Ne pas changer!
  root=/dev/sda3          # Emplacement du système de fichiers racine (root)

image=/boot/kernel-3.3.8-gentoo
  label=gentoo.rescue     # Non donné à cette section
  read-only               # Démarrer avec une racine en lecture seule. Ne pas changer!
  root=/dev/sda3          # Emplacement du système de fichiers racine (root)
  append="init=/bin/bb"   # Lancer le shell de secours de Gentoo

# Les deux lignes qui suivent sont seulement pour un dual-boot avec un système Windows.
# En l'occurrence Windows est implanté sur /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 lors de la compilation du noyau, vous avez choisi d'inclure un disque virtuel de démarrage (initramfs) sur lequel démarrer, vous devez changer la configuration pour faire référence à ce disque virtuel et pour indiquer à initramfs, où se trouve le disque physique root :

Exemple de code 3.4 : extrait de LILO pour un noyau compilé avec initramfs activé

image=/boot/kernel-3.3.8-gentoo
  label=gentoo
  read-only
  append="real_root=/dev/sda3"
  initrd=/boot/initramfs-genkernel-x86-3.3.8-gentoo

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

image=/boot/kernel-3.3.8-gentoo
  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" en remplaçant sdx par le repère de disque approprié..

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 ou faites des changement dans le menu.

Exemple de code 3.6 : 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. Alternative: Utiliser GRUB2

Installer GRUB2

GRUB2 est fourni par le paquet sys-boot/grub . Pour déployer GRUB2, utilisez la notation SLOT pour dire à Portage d'installer GRUB2. Les SLOTs sont une fonctionnalité de Gentoo Linux qui permet de déployer plusieur versions du même paquet simultanément sur un système. Dans notre cas, cela signifie que GRUB Legacy et GRUB2 peuvent être installés sur un système en même temps.

Note : il se pourrait que GRUB2 soit marqué ~x86. Si c'est le cas, soit vous attendez et utilisez GRUB Legacy, soit vous démasquez le paquet. Ceci est expliqué dans Mixing Stable with Testing. Dès que GRUB2 sera stabilisé, l'opérateur SLOT aussi ne sera plus nécessaire.

Exemple de code 4.1 : installer GRUB2

# emerge sys-boot/grub:2

Le programme GRUB2 est maintenant installé sur le système, mais pas encor activé.

Configurer GRUB2

Tout d'abord, installons les fichiers GRUB2 nécessaires dans /boot/grub. En supposant que le premier disque (celui à partir duquel le système démarre ) est /dev/sda, la commande suivante le fera pour nous :

Exemple de code 4.2 : installer les fichiers GRUB2 dans /boot/grub

# grub2-install /dev/sda

Ensuite, nous pouvons générer la configuration de GRUB2 qui sera basée sur la configuration spécifiée dans le fichier /etc/default/grub et dans les scripts /etc/grub.d . Dans la majorité des cas, aucune configuration par l'utilisateur n'est nécessaire car GRUB2 détectera automatiquement quel noyau démarrer (le plus haut disponible dans /boot) et le système de fichiers racine.

Pour générer la configuration GRUB2 finale, exécutez la commande grub2-mkconfig :

Exemple de code 4.3 : générer la configuration de GRUB2

# grub2-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/kernel-3.3.8-gentoo
Found initrd image: /boot/initramfs-genkernel-x86-3.3.8-gentoo
done

La sortie de la commande must doit mentionner qu'au moins une image Linux a été trouvée, car c'est indispensable pour démarrer. Si vous utilisez un système de fichiers virtuel de démarrage (initramfs), ou si vous avez utilisé genkernel pour compiler le noyau, l'image initrd correcte devrait être détectée elle aussi. Si ce n'est pas le cas, allez dans /boot et vérifiez le contenu en utilisant la commande ls. Si les fichiers sont réellement manquants, retournez à la configuration du noyau et aux instructions d'installation.

10.e. 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 5.1 : sortie du « chroot », démontage des partitions et redémarrage

# exit
cdimage ~# cd
cdimage ~# umount -l /mnt/gentoo/dev{/shm,/pts,}
cdimage ~# umount -l /mnt/gentoo{/boot,/proc,}
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

Voir tout

Dernière mise à jour le 23 septembre 2013

Une version originale plus récente datée du 1er juin 2014 existe.

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

livecd-i686-installer-2008.0_beta1.iso 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

José Fournier
Traducteur

Camille Huot
Traducteur

Benjamin Girault
Traducteur

Olivier Fisette
Traducteur

Olivier Roomans
Traducteur

Vincent Strubel
Traducteur

Donate to support our development efforts.

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