Grub : Utilisation d'un bootloader
Contents
Software version | 1 & 2 |
---|---|
Operating System | Linux |
Website | Grub Website |
Last Update | 25/04/2012 |
Others |
1 Introduction
GNU GRUB (acronyme signifiant en anglais « GRand Unified Bootloader ») est un programme d'amorçage de micro-ordinateur. Il s'exécute à la mise sous tension de l'ordinateur, après les séquences de contrôle interne et avant le système d'exploitation proprement dit, puisque son rôle est justement d'en organiser le chargement. Lorsque le micro-ordinateur héberge plusieurs systèmes (on parle alors de multi-amorçage), il permet à l'utilisateur de choisir quel système démarrer.
Ses avantages sont multiples. Tout d'abord, c'est un logiciel libre. Ensuite, il permet notamment la gestion d'autres systèmes que Linux et Windows (utile pour Hurd, Solaris, FreeBSD et OpenBSD), la lecture de la configuration au démarrage (pas besoin de réinstaller GRUB dans le secteur d'amorçage après un changement de configuration, contrairement à LILO), une ligne de commande permettant de changer la configuration au démarrage et surtout la reconnaissance en natif de divers systèmes de fichiers existants. Il possède également une sorte de langage de commande simple permettant de « rattraper » un amorçage qui se serait mal passé, suite au mauvais adressage d'une partition, par exemple.
Grub doit être capable de reconnaître tous les systèmes de fichiers sur lesquels il pourrait être amené à démarrer. Il est pour cette raison beaucoup plus volumineux que LILO.
Il fait partie du projet GNU.
2 Restaurer Grub suite à un problème
2.1 Grub 1
- Booter le PC avec un disque d’installation Debian (net install par exemple)
- A l’invite de commande tapez ceci : rescue root=/dev/hda2
Note : hda2 correspond à la partition ou se trouve le kernel (/boot)
- Continuer la procédure en répondant aux différentes questions sur votre installation
- Pour terminer, choisissez l’option restaurer GRUB et suivez la procédure indiquée
2.2 Grub 2
2.2.1 Ecraser le MBR
Lorsqu'un autre gestionnaire d'amorçage a pris la place de grub-pc dans le MBR :
- Bootez sur un système contenant grub-pc par défaut (par exemple le live-CD linux)
- Montez le disque contenant le /boot/grub/grub.cfg que grub-pc devra utiliser (par exemple en allant sur "Raccourcis/Dossier personnel" en cliquant sur le disque concerné sur la gauche, puis, ok pour autoriser son montage)
- Lancez ensuite la commande suivante en remplaçant "DisqueOùJ'aiMonBoot" par votre point de montage et /dev/sda éventuellement par le disque qui devra contenir grub-pc sur le MBR :
sudo grub-install --root-directory=/media/DisqueOùJ'aiMonBoot /dev/sda |
- Redémarrez en enlevant votre live-cd ou votre clé-usb d'amorçage.
2.2.2 Les Stages et options de boot
Voici les différents stages avec les options pour booter dans un mode fonctionnel et tenter de récupérer l'erreur qui empêche le boot correct :
Problem Stage Boot Option ------------------------------- BIOS | | Linux rescue GRUB | | grub shell Kernel or Initrd | | kernel .. root=LABEL=root init=/bin/bash init | | kernel .. root=LABEL=root emergency rc.sysinit | | kernel .. root=LABEL=root single rc scripts (K,S) | | kernel .. root=LABEL=root 1 rc.local | v
3 Paramétrer un noyau de secours
L'idée ici est de mettre en place une solution pour que si le kernel crash au boot, il puisse redémarrer sur un ancien kernel. Nous allons pour cela utiliser une méthode de failback intégrée à Grub. Il va simplement falloir rajouter quelques lignes :
Quelques petites explications s'imposent :
- savedefault fallback : cette ligne permet de dire que c'est un des kernel que nous allons utiliser en cas de problèmes
- fallback 0 1 : spécifie que nous souhaitons booter sur le kernel 0 puis 1 dont les lignes de savedefault sont présentes
4 Installer un bootsplash
4.1 Introduction
C'est beau hein ?! T'en veux un aussi ! Allez... Il faut déjà avoir ceci de compilé au niveau du kernel :
grep CONFIG_FRAMEBUFFER_CONSOLE < /boot/config-`uname -r` |
CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y |
Une fois que c'est fait, on peut passer à la suite.
4.2 Installation
Installez ceci :
apt-get |
apt-get install bootsplash bootsplash-theme-debian grub-splashimages |
4.3 Configuration
4.3.1 Résolution de Grub
Pour changer la taille des getty (terminaux) de grub, il faut éditer le fichier /boot/grub/menu.lst :
/boot/grub/menu.lst |
# defoptions= |
Remplacez le par celui-ci :
/boot/grub/menu.lst |
# defoptions=vga=791 quiet splash |
Laissez bien le "#", c'est important !
4.3.2 Splashimages
Voici un exemple à insérer dans /boot/grub/menu.lst :
/boot/grub/menu.lst |
## Splashimages splashimage=(hd0,1)/grub/splashimages/fiesta.xpm.gz |
Remplacez (hd0,1) par celui de votre disque de boot (/boot)
4.4 Validation
Pour finir, il faut valider votre configuration :
update-grub |
update-grub |
Si vous avez tout bien fait, vous devriez en retournant dans votre configuration voir vos nouveaux paramètres qui n'ont pas bougés. Si ils ont disparu, c'est que vous avez fait une erreur dans votre configuration.
4.5 Convertion d'une image pour Grub
Si vous souhaitez convertir une image pour utiliser dans grub :
convert |
convert image123.png -colors 14 -resize 640x480 grubimg.xpm |
- La taille doit être : 640x480 pixels
- Seulement 14 coleurs
- Au format XPM
Déplacez là au bon endroit et insérez là ensuite dans votre grub :
/boot/grub/menu.lst |
## Splashimages splashimage=(hd0,1)/grub/splashimages/grubimg.xpm |
5 References
http://www.debianaddict.org/article67.html
http://www.gnu.org/software/grub/manual/legacy/Booting-fallback-systems.html
http://www.linuxscrew.com/2012/04/24/grub-fallback-boot-good-kernel-if-new-one-crashes/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+linuxscrew+%28LinuxScrew%3A+Linux+Blog%29