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'exploitation.
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.
En règle générale vous n'aurez qu'un fichier à modifier pour changer votre Grub. Inutile de dire que ce fichier est très important et que si vous n'êtes pas sûr de votre modification il vaut mieux enregistrer l'original sous un autre nom (évitez de le nommer oldmenu.lst) avant de faire votre modification et ce même si linux en fait une copie automatique sous le nom oldmenu.lst !!
ce fichier c'est : MENU.LST
Il se trouve dans le répertoire : /BOOT/GRUB/
Sert à monter le disque dur et à activer une partition pour la démarrer , il faut lui spécifier quel disque démarrer en spécifiant quel disque ( hd + n°) puis quelle partition (son n°) exemple :
(hd1,0)
Cette commande permet de lancer à proprement parler le système d'exploitation, en fait elle lance le noyau linux qui avait été préalablement chargé par la commande Kernel ou par celle de chainloader.
Cette commande est la plus importante, en effet c'est elle qui va se charger de configurer les options définies pour votre noyau, indiquer son chemin et le charger temporairement en mémoire, la commande boot servant simplement à le lancer. Il est primordial de spécifier le chemin du noyau avec la commande root.
exemple de commande :
kernel /boot/vmlinuz-2.6.21-1.3194.fc7 ro root=LABEL=/ rhgb quiet
elle peut revêtir des formes plus complexes ; exemple ici de ma Suse 10.3 :
Kernel /boot/vmlinuz-2.6.22.9-0.4-default root=/dev/disk/by-id/scsi-SATA_WDC_WD740GD-00FWD-WMAKE1689174-part1 vga=0x346 resume=/dev/sdb2 splash=silent showopts
Initrd (INITial RamDisk) est une image d'un système minimal initialisé au démarrage du système.
Ce fichier utilise le système de fichier cramFS (système de fichier compressé au format gzip et archivé via cpio), ensuite l'image est chargée en mémoire vive et permet ainsi d'avoir un système minimal pouvant ensuite charger le système de fichier principal ou bien des systèmes sans disque (“diskless”).
Initrd est utilisé par exemple sur Debian et Ubuntu.
Sert à activer une partition mais ne la monte pas dans le système (contrairement à la commande root). C'est cette option que l'on utilise pour monter des systèmes Windows.
par exemple :
rootnoverify (hd1,0)
Cette commande ne s'utilise qu'avec un OS de type Windows ( xp, vista, dos ). Sa fonction est de charger les blocs de fichier contenus dans un chargeur de démarrage secondaire. Il faut impérativement la combiner avec la commande rootnoverify.
elle s'utilise de la façon suivante :
chainloader +1
Vous pouvez mettre ce que vous voulez. Il s'agit en fait du nom qui apparaîtra dans le Grub comme par exemple “ma distro Linux préférée”. En règle générale on indique le nom du système (exemple : vista, xp, frugal, ubuntu, suse, fedora …) et éventuellement la version du noyau. Bien évidemment on ne met qu'un nom par ligne et on crée autant de lignes qu'il y a d'options de démarrage ou de systèmes installés. La seule fonction de la commande title est d'afficher le nom dans Grub.
title Fedora (2.6.21-1.3194.fc7)
Ne doit être présent que sur l'une des lignes du Grub, cette commande sert à indiquer à Grub la distribution à booter par défaut en cas d'inaction de votre part, elle doit être combinée à la commande timeout.
s'utilise comme cela :
defaut=0
Indique le temps en secondes avant de lancer le système d'exploitation ou distribution choisi par la commande defaut. Il suffit de mettre par exemple :
timout 8
Sert à masquer les autres choix du menu Grub et ne fait apparaître que celui possédant la mention defaut. Cette option étant activée par défaut sur les distributions Fedora notamment.
Spécifie l'utilisation d'une image pour afficher le Grub, il faut lui indiquer l'emplacement de cette image. Dans l'exemple ci-dessous on lui indique le disque et la partition (hd1,0) et le chemin jusqu'à l'image /boot/grub/ et enfin le nom de votre image splash.xpm.gz :
splashimage=(hd1,0)/boot/grub/splash.xpm.gz
convert -size 1200x1024 monimage.jpg -resize 640x480 -colors 15 -profile '*' splash.xpm $ gzip splash.xpm
à noter qu'il faut indiquer la taille initiale de votre image (ici 1200*1024) et son nom (ici monimage.jpg)
Dans Gimp faites un clic gauche sur votre image et pressez les touches ALT + I, mettez le chiffre 14, cochez “générer une palette optimisée” dans le haut du menu. Si la combinaison de touche Alt+I ne fonctionne pas, faites un clic droit sur l'image et allez dans le menu image ⇒ mode ⇒ Indexed et spécifiez 14 couleurs et puis sélectionnez NO DITHERING (recommandé). Ceci va demander à Gimp de ne pas essayer de deviner les couleurs de transition. il vous est aussi possible de spécifier les couleurs pour la palette de 14, en fait j'ai dû le faire pour une de mes images et j'ai remplacé une couleur sombre par une couleur claire. :) et Gimp secoue !
#boot=/dev/sdb1 default=0 timeout=5 splashimage=(hd1,0)/boot/grub/splash.xpm.gz hiddenmenu title Fedora (2.6.21-1.3194.fc7) root (hd1,0) kernel /boot/vmlinuz-2.6.21-1.3194.fc7 ro root=LABEL=/ rhgb quiet initrd /boot/initrd-2.6.21-1.3194.fc7.img
title windows vista rootnoverify (hd0,0) chainloader +1