Installation de Grub
Source : Purée de Linux
Présentation
GRUB est un remplaçant très puissant pour LILO, le chargeur de démarrage (bootloader natif de linux). Il a l’avantage d’être très flexible et est modifiable de façon temporaire sans modifié ses fichiers de configuration et sans avoir à démarrer préalablement sur un système. Avec grub, on peut lancer un système en utilisant une interface soit en ligne de commande soit avec des menus.
grub numérote les partitions à partir de 0 (sous la forme (hd0,0)), donc on a dans le cas ou le premier disque installé est en hda et le deuxième en hdb :
- la partition hda1 devient (hd0,0)
- la partition hda2 devient (hd0,1)
- la partition hdb1 devient (hd1,0)…
On suppose dans ce tutoriel que le disque dur est partitionné ainsi :
- hda1: windows
- hda2: swap
- hda3: knoppix
- hda4: autre linux
Installation
Installation du logiciel
Nous allons prendre ici l’exemple de la debian (ou de knoppix) et de slackware 10.0 :
Pour debian
#apt-get install grub
et pour slackware
#swaret —install grub
C’est tout simple, cela va soit l’installer si vous ne l’aviez pas, soit le mettre à jour.
Copie des fichiers de grub
Vous devez tout d’abord créer un dossier grub dans le répertoire de boot, en root, dans une console :
#mkdir /boot/grub
Ensuite vous copiez dans /boot/grub tous les fichiers contenus dans le répertoire: /usr/lib/grub/i386-pc ou dans les dernières versions de grub /lib/grub/i386-pc et dans slackware /usr/share/grub/i386-pc
#cp -a /usr/lib/grub/i386-pc/* /boot/grub/
ou
#cp -a /lib/grub/i386-pc/* /boot/grub/
ou pour slackware
#cp -a /usr/share/grub/i386-pc/* /boot/grub/
Ainsi que le fichier menu.lst qui se trouve dans /usr/share/doc/grub/examples
#cp -a /usr/share/doc/grub/examples/menu.lst /boot/grub/
Grub dans le mbr
Comme dit au début de ce howto, GRUB numérote les partitions à partir de 0 sous la forme (hd0,0). Donc la partition hda1 devient (hd0,0) et hdb1 (hd1,0) et ainsi de suite.
Dans une console root, vous tapez :
#grub
Si vous n’avez pas de lecteur de disquette, pour éviter une certaine longueur:
#grub —no-floppy
et vous obtenez l’invite suivante : grub>
Tapez : (ici hda3 est la partition root ou racine(/), donc cette ligne est à adapter)
grub>root (hd0,2)
La commande root sert à indiquer à GRUB sur quel dd/partition il pourra trouver ses fichier-images c’est à dire sur quelle DD/partition se trouve le dossier boot/grub.
Puis, vous lui indiquez où il doit s’installer, ici sur le premier disque dur maitre sur le Master Boot Record (première partie du disque servant à dire où il faut démarrer).
grub>setup (hd0)
pour sortir:
grub>quit
et voila si vous n’avez pas eu d’erreur, grub est installé sur votre disque dans le mbr.
Le menu grub
Présentation
Le menu de grub est défini dans le fichier menu.lst que l’on place dans /boot/grub/menu.lst
Il est composé de deux parties :
- Une partie pour la présentation (couleurs, temps, clavier…)
- Une partie définissant les actions des menus
Nous allons plus particulièrement considérer la partie sur les menus. Pour le reste, vous comprendrez en regardant les exemples que l’on vous propose.
Menu Linux
Tout d’abord regardons comment faire un menu pour Linux.
# For booting GNU/Linux
# Pour démarrer GNU/Linux
title GNU/Linux
root (hd1,0)
kernel /vmlinuz root=/dev/hdb1
#initrd /initrd.img
Bien sûr ceci est à adapter. Dans le cas de l’exemple ici, nous avons notre partition racine de Knoppix en hda3. Nous allons donc avoir :
# For booting GNU/Linux
# Je decide de le nommer Knoppix plutot que GNU/Linux
title Knoppix
root (hd0,2)
kernel /boot/vmlinuz root=/dev/hda3 3 vga=791 hdc=ide-scsi hdd=ide-scsi apm=power-off
#initrd /initrd.img
Vous remarquerez que j’ai passé des options supplémentaires au noyau
Dans certains cas, la ligne initrd doit être décommentée (= on enlève le # du début de cette ligne). Ce fut le cas pour une Debian sarge.
Menu Windows
Windows a une façon complètement différente de démarrer. Le menu sera donc bien différent :
title Windows NT / Windows 95 boot menu
rootnoverify (hd0,0)
makeactive
chainloader +1
# Pour démarrer DOS si Windows NT est installé
# chainload /bootsect.dos
Bien que dans l’exemple donné dans /usr/share/doc/grub/examples/menu.lst il n’est dit que Windows NT ou Windows 95, cela fonctionne au moins avec Windows 98
Page mise à jour le 08 juillet 2007 à 00h29.