LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


util:grub

Grub

Présentation

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.

Fonctionnalités

  • Contrairement à Lilo, Grub n'a pas besoin d'être réinstallé pour mettre à jour sa configuration. Grub prend en compte les modifications de son fichier de configuration automatiquement.
  • Au cas où le fichier de configuration serait incorrect, GRUB peut fournir un interpréteur de commandes pour permettre à l'utilisateur de charger un système d'exploitation manuellement.
  • Grub est très portable : il permet de charger aussi bien des systèmes compatibles avec le multiboot que des systèmes non-compatibles avec cette fonction (comme Microsoft Windows). Grub supporte en outre beaucoup de systèmes de fichiers comme ext3, VFAT ou NTFS. Grub est également compatible avec le mode Logical Block Address (LBA).
  • Grub peut être utilisé avec différentes interfaces. Beaucoup de distributions GNU/Linux utilisent le support graphique de Grub pour afficher au démarrage de l'ordinateur un menu avec une image de fond, et parfois un support de la souris.
  • Grub peut télécharger des images de systèmes d'exploitation depuis un réseau, et supporte donc les ordinateurs sans disques. Grub peut donc décompresser ces images pour les charger ensuite.

Les options et commandes de Grub

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/

Root

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)

Boot

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.

Kernel

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

FIXME

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.

rootnoverify

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)

Chainloader

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

title

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) 

defaut

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 

timeout

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 

hiddenmenu

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.

Splashimage

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 

L'image utilisée doit avoir les caractéristiques suivantes :

  • 640*480 en résolution
  • 14 couleurs maxi
  • extension .xpm.gz

Pour convertir une image dans ce format rien de plus simple :

 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)

Avec Gimp

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 !

Exemple d'un fichier menu.lst

 #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

Liens

util/grub.txt · Dernière modification : 2018/11/17 12:54 de 127.0.0.1