Grub, le gestionnaire de démarrage Gnu
Première partie: le déroulement de la séquence de démarrage
Faire cohabiter Linux et Windows sur un même ordinateur à été pour la plupart d'entre nous la condition sine qua non pour effectuer la transition. Cette prouesse technique à été possible grâce à des outils comme GRUB (GRand Unified Bootloader) ou LILO (LInux LOader). Pourtant peu d'attention est portée à la clé de voûte des ordinateurs multi-OS.
Grub par sa souplesse d'utilisation est devenu indissociable des distributions grand public. Bien que simple d'utilisation, les menus par défaut ne sont pas toujours très conviviaux, affichant des entrées dans un dialecte des plus mystérieux et souvent inutilisées.Déroulement de la séquence de démarrage
L'allumage de l'ordinateur débute par le chargement du BIOS, qui renseigne sur les paramètres indispensables et les périphériques disponibles. Suivant les priorités définies, le BIOS va lancer le Master Boot Record (MBR) d'une disquette, d'un compact-disc ou le plus souvent du disque dur. Généralement, le MBR appelle le lanceur Windows qui donne le contrôle au système d'exploitation. Windows ne gérant pas le démarrage multi-OS, Grub doit se substituer au MBR et enchaîner à la suite son propre lanceur et celui de Windows pour finir la séquence. Pour les autres systèmes d'exploitation, Grub pourra initier la séquence directement.
Grub se compose de deux fichiers. Le fichier stage1 qui remplace le MBR limité à 512ko et dont la seule utilité est d'exécuter le fichier stage2, plus volumineux qui comprend le système et une interface rudimentaire. Cette interface permet soit de saisir des lignes de commandes, soit d'afficher le menu de sélection des systèmes d'exploitation. Le script de ce menu nommé menu.lst est la plupart du temps accessible en lecture dans /boot/grub.
Le script menu.lst peut varier d'une distribution à l'autre, mais les éléments fondamentaux sont communs à toutes les distributions. Le script commence par des lignes de commentaires repérables par le symbole dièse (#). Les commandes ou le texte d'une ligne précédée d'un # sont systématiquement ignorés. Ensuite, viennent éventuellement les commandes color, splascreen, menugfx, etc. qui gèrent l'apparence du menu. La commande default défini le système lancé passé un certain délais, fixé par la commande timeout (en secondes).
La suite consiste en une série de paragraphes qui sont en fait la liste des choix proposés au démarrage numéroté à partir de 0. Si vous regardez attentivement, vous devriez y retrouver les lignes affichées lors de l'allumage de votre ordinateur. Chaque système d'exploitation possède son propre paragraphe contenant les paramètres nécessaires au démarrage.
#
# EXEMPLE DE SCRIPT
# MENU.LST
#
default 0
timeout 10
color cyan/blue white/blue
title Ubuntu 7.10, kernel 2.6.22-14-generic
root (hd0,6)
kernel /boot/vmlinuz-2.6.22-14-generic root=hd,6 ro quiet splash
initrd /boot/initrd.img-2.6.22-14-generic
title Microsoft Windows XP Professionnel
root (hd0,0)
savedefault
makeactive
chainloader +1
Dans le cas d'un système Gnu/Linux:
- Title affiche le texte de l'entrée sélectionnable,
- Root indique à Grub la partition concernée,
- kernel renseigne Grub sur le noyau et sa version à utiliser,
- initrd (facultatif) crée une image virtuelle de ce noyau en mémoire RAM,
Dans le cas d'un système Microsoft/Windows
- Title affiche le texte de l'entrée sélectionnable,
- Root noverify oriente Grub vers la partition Windows,
- makeactive pour activer cette partition,
- chainload prévient Grub qu'il ne va pas lancer directement un noyau mais un lanceur autonome.
Attention!!! Si vous êtes familier des systèmes Gnu/Linux, les partitions sont numérotées à partir de 1. Grub possède sa propre notation et commence à 0. La partition hd1 sera appelé hd0, hd2 sera appelé hd1 et ainsi de suite. Cette règle est aussi valable pour la commande default.
Un peu plus de convivialité et de clarté dans le menu de sélection
A ce stade là, il est possible d'identifier les commandes principales de Grub et leur ordre. Le fichier menu.lst comprend tout les paramètres valides indispensables au démarrage. Il est tout à fait possible même pour un débutant de personnaliser le menu de démarrage dans menu.lst, à condition de prendre certaines précautions: Sauvegarder menu.lst pour pouvoir le restaurer et l'imprimer pour pouvoir redémarrer manuellement. Si le démarrage venait à bloquer au niveau de Grub, presser C permet de passer en ligne de commande, de saisir à la main la séquence de démarrage (que vous avez imprimée) suivit de la commande boot afin d'accéder au système d'exploitation et restaurer la sauvegarde du fichier menu.lst original (que vous avez souvegardé).
Pour des raisons évidentes de sécurité, Linux ne vous laisse pas éditer librement le fichier menu.lst. Le mieux est d'ouvrir un terminal ou console et de s'y logger en root:
'su' ou 'sudo -s' (suivant la distribution)
cd /boot/grub
Gedit menu.lst (pour les bureaux Gnome)
Kwrite menu.lst (pour les bureaux Kde)
Vous pouvez modifier les lignes précédées de title (attention, Grub est anglophone, il ne connait pas les accents) ou supprimer les entrées que vous n'utilisez pas. Pour gagner du temps lors de vos essais, ne supprimez pas les lignes d'un paragraphe, mais faite les précéder du symbole #. comme nous l'avons vu précédemment, cette ligne sera alors ignorée. De même, pour modifier une ligne title, faites-en un copier/coller et faite précéder la ligne d'origine par #. Le temps de vous familiariser avec le script, cela vous permettra de garder en vue les données correctes. Évitez toutefois de modifier les paramètres ou l'ordre des paragraphes, ce qui sans être catastrophique pourrait modifier le chargement et le comportement de vos systèmes d'exploitation.
Les modifications évoquées ici ne comportent que peu de risque à condition d'être attentif et de procéder étapes par étapes. Le prochain chapitre portera sur la création d'une disquette de démarrage qui reprendra le menu initial et permettra aussi de réaliser ces modifications en toute sécurité sans intervenir dans la séquence de démarrage du disque dur. En cas de doute, armez vous de patience jusqu'au mois prochain et commencez d'ors-et-déjà à trier vos vieilles disquettes!
DaG
|
|


