====== GRUB ====== FIXME 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. [[http://fr.wikipedia.org/wiki/GRand_Unified_Bootloader|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.