GRUB

Doc qui ne traite que de GRUB 1. Mettre à jour la la configuration avec la version 2 de GRUB qui apportent de nombreux changements.

Généralités

Grub (acronyme de GRand Unified Bootloader) est un programme de multiboot, libre, au même titre que LILO (Linux loader), qui permet de choisir au démarrage de son ordinateur entre plusieurs systèmes d'exploitations.

Ses avantages sont notamment la gestion d'autres systèmes que Linux et Windows (utile pour Hurd, Solaris, FreeBSD et OpenBSD), la lecture de la configuration au boot (pas besoin de réinstaller GRUB dans le secteur de boot après un changement de configuration, contrairement à LILO), une ligne de commande permettant de changer la configuration au boot et surtout la reconnaissance en natif des divers systèmes de fichiers existants. Il possède également une sorte de langage de commande simple permettant de « rattraper » un boot qui se serait mal passé, suite au mauvais adressage d'une partition, par exemple.

Grub doit bien entendu être capable de reconnaître tous les systèmes de fichiers sur lesquels il pourrait être amené à booter. Il est pour cette raison beaucoup plus gros que LILO.

Il fait partie du projet GNU.

GRUB.

Configuration

Configuration générale

Emplacement	Fonction
/boot/grub/menu.lst	Fichier de configuration de GRUB.

Configuration spécifique

Fichier menu.lst.

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/Mon_Linux/Ma_Racine
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux ES (2.6.9-67.0.4.ELsmp)
root (hd0,0)
kernel /vmlinuz-2.6.9-67.0.4.ELsmp ro root=/dev/Mon_Linux/Ma_Racine rhgb quiet clock=pmtmr
initrd /initrd-2.6.9-67.0.4.ELsmp.img
title Red Hat Enterprise Linux ES (2.6.9-67.0.4.EL)
root (hd0,0)
kernel /vmlinuz-2.6.9-67.0.4.EL ro root=/dev/Mon_Linux/Ma_Racine rhgb quiet clock=pmtmr
initrd /initrd-2.6.9-67.0.4.EL.img
title Red Hat Enterprise Linux ES (2.6.9-67.ELsmp)
root (hd0,0)
kernel /vmlinuz-2.6.9-67.ELsmp ro root=/dev/Mon_Linux/Ma_Racine rhgb quiet clock=pmtmr
initrd /initrd-2.6.9-67.ELsmp.img
title Red Hat Enterprise Linux ES-up (2.6.9-67.EL)
root (hd0,0)
kernel /vmlinuz-2.6.9-67.EL ro root=/dev/Mon_Linux/Ma_Racine rhgb quiet
initrd /initrd-2.6.9-67.EL.img

En gros, on définit quatre lignes.

La ligne qui sera affiché à l’écran (title).

L’emplacement du système sur le disque dur (hd0,0=premier disque première partition).

L’emplacement du noyau linux avec les paramètres qu’on lui passe. (kernel).

L’emplacement du fichier de ramdisk (initrd).

Installer un GRUB

Pour installer un GRUB afin de valider des modifications, il faut lancer la commande suivante.

grub-install /dev/sda

La commande installe le GRUB dans le MBR du serveur. Ainsi, au redémarrage, le système doit être accessible.

Remettre un GRUB cassé dans le MBR

Si le GRUB est cassé, il est possible de le remettre facilement.

Lancer le system rescue cd sur le système en question et effectuer les commandes suivantes.

Créer un dossier de montage

mkdir /mnt/dd

Monter la partition qui correspond à /boot.

mount /dev/sda1 /mnt/dd

Éditer le fichier de configuration de GRUB et vérifier qu’il n’y a pas d’erreur.

vi /mnt/dd/boot/grub/menu.lst

Lancer la commande d’installation du GRUB en faisant en sorte que cela soit celui du système pas celui du system rescue cd.

chroot /mnt/dd grub-install /dev/sda

Remarque

La commande chroot permet temporairement de changer de racine. Il faut comprendre la commande précédente en se disant que l’installation de GRUB est lancé comme si on était connecté sur le système que nous n’arrivons par à démarrer.