======= Grub =======
{{grub.png|}}
DELETEME a réfaire au propre

====== 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'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.

====== 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'exploitations 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éral vous n'aurez qu'un fichier a modifier pour changer votre grub. Inutile de dire que ce fichier est très important et que si vous n'êtes pas sur de votre modification il vaut mieux enregistrer l'original sous un autre nom (éviter de le nommé oldmenu.ls) 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 demarrer , il faut lui specifier quel disque demarer en spécifiant quel disque ( hd + n°) puis quel partition (son n°) exemple :

   (hd1,0)


==== Boot ====

Cette commande permet de lancer a proprement parlé 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 definit pour votre noyau , indiqué son chemin et le charge temporairement en memoire, la commande **boot** servant simplement a 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 revetir des forme plus complexe 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 disques ("diskless").

Initrd est utilisé par exemple sur Debian et Ubuntu.

==== rootnoverify ====
Sert a activer une partition mais ne la monte pas dans le système ( contrairement a la commande **root**). C'est cette option que l'on utilise pour monter des système windows.

par exemple :

   rootnoverify (hd1,0)


==== Chainloader ====

Cette commande ne s'utilise quavec un os de type windows ( xp, vista, dos ). Sa fonction est de charger les bloc de fichier contenu dans un chargeur de demarrage 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 se que vous voulez il s'agit en fait du nom qui apparaitra dans le grub comme par exemple "ma distro linux preferée". 
En regle général on indique le nom du systeme exemple vista, xp, frugal, ubuntu, suse, fedora,  etc et éventuelement la version du noyau. 
Bien évidement on ne met qu'un nom par ligne et on crée autant de ligne qu'il y a d'option de démarrage ou de systeme installé. La seul 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 ligne du grub , cette commande sert a indiquer a grub la distribution a booter par defaut en cas d'inaction de votre part, elle doit être combiner a la commande **timeout**.

s'utilise comme cela :

   defaut=0 

==== timeout ====
Indique le temps en seconde avant de lancer le système d'exploitation ou distribution choisit par la commande defaut. Il suffit de mettre par exemple:

   timout 8 

==== hiddenmenu  ====

Sert a masquer les autre choix du menu Grub et ne fait apparaitre que celui possédant la mention defaut. Cette option étant activé par défaut sur les distribution fedora notament.






==== Splashimage ====

Spécifie l'utilisation d'une image pour afficher le grub , il faut lui indiquer l'emplacement de cette image, dans l'exemple si dessous on lui indique le disque et la partition (hd1,o) et le chemin jusqu'a 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é doit avoir les caractéristique suivante :===

    * 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 faite un clic gauche sur votre image et pressez les touches ALT + I mettez le chiffre 14 cochez "generer une palette optimisé" dans le haut du menu. si la combinaison de touche Alt+ I ne marche pas cliquez gauche sur l'image et allez dans le menu image=> mode=>Indexed et specifier 14 couleurs......

To get GIMP to use only a 14 color palette, right click on your file and press ALT+I and put 14 where it says "Generate Optimal Palette:" on the top of the menu. If ALT+I doesn't get you there then right click on the image and go to:

Image-->Mode-->Indexed

Specify you want 14 colors and then if you want (*recommended*) select NO DITHERING. This will tell the gimp not to try to guess colors in between areas. It is also possible that you tell them gimp what colors you want in your 14-color pallete, I actually had to do this for one of my images and I replaced a dark color for a light one. :) The GIMP ROCKS! 

==== 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 ====
[[http://www.trustonme.net/didactels/136.html|de bon tuto sur grub et son install]]

[[http://www.linux-france.org/article/sys/chargeurs/ix86/grub/grub-manual-fr.html|le manuel de grub en français]]

[[http://www.gnu.org/software/grub/grub-2.en.html|grub 2 site officiel en anglais]]

[[http://www.gnu.org/software/grub/| site officiel de Grub en anglais]]

[[http://geocities.com/supergrubdisk/| cd super grub pour réparer grub]]

Définition et fonctionalité tiré de wikipédia

[[http://ruslug.rutgers.edu/~mcgrof/grub-images/#1.0| guide en anglais pour crer des grub ]]