L'hebdo
RETOUR A LA UNE

LES ARCHIVES
371370369368 367
366365364363362
Toutes les archives

LA REDACTION
Devenez reporter
Votre bureau
La rédaction
Les reporters

AIDE ET CONSEILS
Foire aux questions
Conseils d'écriture
La netiquette

Publicité

L'Echo du Village - Accueil
n°364 - 15 janvier 2008
Rubrique Edition Technique animée par DaG

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



L'auteur
DaG
DaG

Carte de reporter

5 derniers articles :
• La démocratie en Europe
• La guerre entre systèmes d'exploitation est déclarée
• Mai 2007, le secret de la victoire
• Localisation des unités de disques dans l'environnment Gnu/Linux
• Nouvelle taxe sur les supports de stockages

Réagissez
- Réagissez à cet article dans les forums de l'Echo
- Recommandez cet article

Devenez reporter
L'Écho du Village propose à tous les villageois de devenir reportergrâce à une interface conviviale et facile d'utilisation.

L'Echo du Village
Les_Blogs_du_Village
Les_forums_du_Village