Skip to content

Accueil > GNU/Linux > Utiliser le chargeur de démarrage GRUB

Utiliser le chargeur de démarrage GRUB

jeudi 25 janvier 2007, par Stéphane Téletchéa

Le chargeur de démarrage GRUB (GRand Unified Bootloader) créé par Erich Stefan Boleyn en 1995 est devenu un projet supporté officiellement par la FSF depuis 1999.

L’un de ses intérêts par rapport à LILO est sa capacité à lire directement dans l’arborescence du disque dur les fichiers de configuration dont il a besoin. Il ne permet pas d’utiliser un mode graphique aussi avancé que celui de LILO.

Une fois GRUB installé, il est possible de modifier le fichier de configuration autant de fois que l’on veut sans avoir à lancer l’installation de grub. Par opposition, avec LILO, il faut valider toute modification en relançant /sbin/lilo pour qu’elle soit prise en compte.

Installation

L’installation de grub s’effectue en installant le paquetage grub (urpmi grub) puis en lançant la commande grub-install <périphérique>, où <périphérique> correspond au disque de votre choix (généralement celui de votre distribution linux favorite, /dev/hda).

Le répertoire /boot/grub/ contient alors tous les fichiers nécessaires au bon fonctionnement de GRUB :

- stage1 : fichier de 512 octets permettant de passer outre la limitation de fonctionnement de l’architecture x86.
- e2fs_stage1_5, fat_stage1_5, ffs_stage1_5, iso9660_stage1_5, jfs_stage1_5, minix_stage1_5, reiserfs_stage1_5, ufs2_stage1_5, vstafs_stage1_5, xfs_stage1_5 : fichiers spécifiques pour chaque type de système de fichiers.
- stage2, stage2_eltorito : chargement à proprement parler du système d’exploitation.
- menu.lst : fichier de configuration à proprement parler, qui permet de décrire quel système d’exploitation doit être chargé et avec quels paramètres.

Je passe volontairement sur les détails des stage* qui permettent à GRUB d’accéder au système de fichier (voir liens ci-dessous pour plus d’informations) afin de détailler le contenu du fichier principal de configuration : menu.lst.

Configuration

Le fichier /boot/grub/menu.lst contient en en-tête les paramètres de configuration de grub (les parties entre <> sont à adapter en fonction de votre système) :

timeout x : définit le temps en secondes après lequel le système par défaut sera lancé
default 0 : définit l’image grub lancée par défaut (ici l’image 0)

<Nom de l'image 0>
kernel <partition>/chemin-vers-l'image-noyau <options du  noyau>
initrd <partition>/chemin-vers-l'initrd

Note à propos des partitions : le principe de description des partitions sous grub est de la forme « (hdX,Y) » : hd signifie Hard Disk (IDE ou SCSI), X est le numéro du disque(qui commence à 0) et Y le numéro de la partition du disue (qui commence à 0). Ainsi si un disque est déclaré sous linux comme /dev/hda1 (1er disque et première partition primaire, pour grub il sera vu comme (hd0,0).

Dans le cas de systèmes d’exploitation n’étant pas supportés nativement par GRUB (par exemple DOS/Windows), un mécanisme de chaînage de chargeur de démarrage existe. Dans ce cas, GRUB passe simplement la main au système d’exploitation, sans intervenir sur son démarrage. L’entrée est alors simplifiée, de la forme :

root (hdX,Y)     # indique la partition sur laquelle est le système d'exploitation à démarrer
chainloader +1   # active le chargeur de démarrage du système d'exploitation.

Ce mécanisme de chaînage de chargeurs de démarrage peut être utilisé pour lancer d’autres images grub ou lilo, présentes par exemple sur une autre partition.

Voici ci-dessous un fichier de configuration standard avec les options passées au noyau et une entrée utilisant le chaînage de chargeur de démarrage :

timeout 10          # définit le temps en secondes après lequel le système par défaut sera lancé
default 0           # noyau lancé par défaut

title linux         # première image du noyau
kernel (hd0,6)/boot/vmlinuz root=/dev/hda7 resume=/dev/hda6 splash=silent acpi=on vga=788
initrd (hd0,6)/boot/initrd.img

title linux-nonfb   # deuxième image du noyau
kernel (hd0,6)/boot/vmlinuz root=/dev/hda7 resume=/dev/hda6 acpi=on
initrd (hd0,6)/boot/initrd.img

title failsafe      # troisième image du noyau
kernel (hd0,6)/boot/vmlinuz root=/dev/hda7 failsafe resume=/dev/hda6 devfs=nomount acpi=on
initrd (hd0,6)/boot/initrd.img

title windows       # image qui fait appel au chaînage de chargeur de démarrrage
root (hd0,0)
chainloader +1

En général cette configuration, adaptée à votre besoin, permet de charger toutes les images dont vous nécessaires.

GRUB en console

Lors de l’installation d’un nouveau noyau et/ou la modification d’une configuraiton, dans lilo, il faut valider ces modifications en le relançant, sous peine de voir lors du redémarrage une suite ininterrompue de LILILILI...

Avec GRUB, vous avez beaucoup plus de souplesse. En effet, GRUB possède dès le démarrage un mini-shell qui vous permettra de mofifier les informations des entrées des images.

Pour entrer dans ce mode, il faut taper au moment de l’écran de choix des images disponibles sur la touche e (pour Edit).

La commande help vous donnera les commandes disponibles dans le mini-shell.

Ce mini-shell possède la complétion, c’est à dire la capacité à compléter une commade en proposant les options possibles, quand on appuie sur la touche tab.

Une fois que vous avez ajusté les nouveaux paramètres pour le noyau (chemin de l’image, partition de boot, paramètres optionnels, ...), vous pouvez démarrer avec ces modifications en appuyant sur la touche b (Boot).

Ces modifications ne fonctionnent que dans le mode d’édition, pour les rendre définitives, n’oubliez pas d’éditer le fichier /boot/grub/menu.lst une fois votre environnement de prédilection démarré.

Pour aller plus loin

Site officiel : http://www.gnu.org/software/grub/
Manuel complet d’utilisation : http://www.linux-france.org/article/sys/chargeurs/ix86/grub/grub-manual-fr.html#Demarrage
Introduction plus complète sur Léa-Linux : http://lea-linux.org/admin/admin_boot/grub.html
GRUB-HOWTO : http://www.cri74.org/linux/howto/grub-howto.html#toc6

3 Messages

Répondre à cet article