Distribution : Debian
Niveau : Amateur
Commentaire :
Grub est le chargeur de démarrage du projet GNU. Voyez l'article Bootloader pour plus de précision sur ce que sont les chargeurs de démarrages.
Grub gère de nombreux systèmes de fichiers ainsi que de nombreux systèmes d'exploitations.
Si grub est déjà installé, vous pouvez passer au chapitre Configuration > Personnalisation.
# apt-get install grub
Lancez la commande suivante :
# grub-install "(hd0)"
Dans ce cas, grub va être installé dans le dossier /boot/grub/.
Lancez la commande suivante :
# grub-install --root-directory=/boot "(hd0)"
Dans ce cas, grub va être installé dans le dossier /boot/boot/grub/.
# update-grub
Si vous avez un système Windows sur une autre partition et que celui-ci n'est pas détecté par update-grub, ajoutez les lignes suivantes au fichier menu.lst, après la ligne ### END DEBIAN AUTOMAGIC KERNELS LIST
title Windows (le nom qui doit apparaître dans le menu au démarrage) root (hdx,y) (la partition système, avec x = le disque dur, y = la partition) savedefault makeactive chainloader +1
Dans Grub, les disques ne sont pas identifiés par des lettres mais par des chiffres. Au lieu de partir de a, partez de 0 : hda = hd0, hdb = hd1,...
Dans menu.lst, vous disposez de plusieurs options :
Afin de rendre un peu plus conviviale le menu de Grub, il peut être intéressant de mettre une image de fond (splashimage).
Tout d'abord, il faut vérifier si grub supporte les splashimages. Pour ce faire lancer ce script.
L'installation du package grub-splashimages vous permet d'installer les images suivantes sur le système :

Si l'une d'entre elles vous convient, installez le package :
# apt-get install grub-splashimages
Elles sont présentes dans le répertoire /boot/grub/splashimages. Une liste de logiciels de visualisation est disponible sur la page RegarderDesImages.
Vous pouvez créer vos propres images au format .xpm.gz en 640*480 14 couleurs.
Dans un premier temps, nous allons créer un lien symbolique vers la splashimage de notre choix (debsplash.xpm.gz) :
# ln -s /boot/grub/splashimages/debsplash.xpm.gz /boot/grub/splash.xpm.gz
Maintenant, il faut indiquer à grub l'endroit ou aller chercher cette image. En éditant le fichier de configuration /boot/grub/menu.lst, vous devez avoir quelque chose comme celà à la fin.
title Debian GNU/Linux, kernel 2.6.18-3-686 root (hd0,0) kernel /boot/vmlinuz-2.6.18-3-686 root=/dev/hda1 ro initrd /boot/initrd.img-2.6.18-3-686 savedefault title Debian GNU/Linux, kernel 2.6.18-3-686 (single-user mode) root (hd0,0) kernel /boot/vmlinuz-2.6.18-3-686 root=/dev/hda1 ro single initrd /boot/initrd.img-2.6.18-3-686 savedefault
Sur la ligne intitulée root on voit (hd0,0) qui représente la partition montée au démarrage de grub ; Il s'agit de hda1. Par conséquent, il est impératif que la splashimage soir présente sur cette partition pour que grub puisse la lire. Ajoutez la directive suivante au fichier pour obtenir un bootloader avec la splashimage :
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
et mettez en commentaire la directive color.
Mettez à jour Grub :
# update-grub
Il vous suffit de rédémarrer votre ordinateur pour tester votre nouveau thème.
Votre image doit respecter les critères suivants :
Une fois votre image créée, placez-là sur la partition où est situé votre Master Boot Record (dans l'exemple précédent il s'agissait de hda1), et faites un lien symbolique dessus comme montrer plus haut.
Par défaut, les consoles sont en mode 80 colonnes * 24 lignes. Dans certains cas, cette taille est insuffisante pour travailler (exemple : consulter les logs du kernel sur la console tty8). Afin d'augementer la résolution des consoles, il est possible de passer en mode Framebuffer.
Pour avoir les consoles en mode VGA 1024x768, ajoutez à la fin de la ligne kernel... le paramètre vga=791. Il est possible d'indiquer d'autres résolutions (voir tableau plus bas).
Exemple :
kernel /boot/vmlinuz-2.6.16 root=/dev/hda2 ro vga=791
Liste des modes possibles :
| 640x480 | 800x600 | 1024x768 | 1280x1024 | 1600x1200 | |
|---|---|---|---|---|---|
| 256 couleurs | 768 | 771 | 773 | 775 | 796 |
| 32K couleurs | 784 | 787 | 790 | 793 | 797 |
| 64K couleurs | 785 | 788 | 791 | 794 | 798 |
| 16M couleurs | 786 | 789 | 792 | 795 | 799 |
Pour des modes ne faisant pas parties du standard VESA (par exemple une résolution au format 16:10 pour les écrans larges), il faut consulter la documentation du framebuffer car ils n'ont aucun numéro de mode. Pour ce faire, il faut utiliser l'option video. Voici un exemple :
video=vesafb:1200x800-32@60
Il faut savoir que Grub ne consiste pas en une simple liste de choix. En effet, il comporte aussi un mode console permettant d'effectuer des commandes de bases sur le système au travers d'un bash minimal.
Pour vous montrer le danger que cela peut etre en environnement multi utilisateurs, rien de plus simple. A l'affichage du menu, pressez la touche 'e' pour voir les différentes options associées aux entrées du menu. Ensuite entrez en mode console et au prompt tapez :
cat /etc/shadow
Et voila, vous venez d'afficher le fichier contenant les mots de passe du système sans qu'aucune restriction de droits ne vous soit appliqué. Il ne reste plus qu'à espérer que les mots de passe soient solides, ou il ne faudra pas longtemps à notre bon vieux john pour les obtenir.
Pour éviter celà, il est possible de mettre un mot de passe pour empêcher toute utilisation malhonnête de la console. Dans une console, lancez la commande suivante :
# grub-md5-crypt Password: Retype password: $1$F9Dsl1$ZHZm9SQBLop3n112dUL.O/
Un mot de passe vous est demandé, puis s'affiche sa conversion en md5 ($1$F9Dsl1$ZHZm9SQBLop3n112dUL.O/). Editez maintenant le fichier /boot/grub/menu.lst et ajoutez y la directive suivante :
password --md5 $1$F9Dsl1$ZHZm9SQBLop3n112dUL.O/
Si vous avez oublié le mot de passe root de votre système, plus besoin de vous inquiéter, vous avez la solution ci-dessous.
On va utiliser la possibilité de modifier les options de démarrage. Pour ce faire, dans le de menu GRUB, sélectionnez l'entrée de votre choix et pressez la touche e pour éditer les options associées. Dans l'écran suivant, on continue en pressant la touche e une seconde fois sur la ligne kernel. Ensuite, modifiez l'option ro en rw et ajoutez init=/bin/bash. Maintenant on boot avec le touche b.
Le système démarre, en montant en lecture/écriture la partition principale. Si vous disposez de plusieurs partitions, il faut les monter via la commande :
mount -a
On passe à l'essentiel, en modifiant le mot de passe root en tapant la commande :
# passwd
Pour finir, on reboot et tout revient dans l'ordre avec le prise en compte du nouveau mot de passe.