Comment installer Grub sur le second disque dur ?

Introduction

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'exploitation.

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 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 un langage de commande simple permettant de « rattraper » un amorçage qui se serait mal passé, suite au mauvais adressage d'une partition par exemple, et qui permet aussi de modifier directement la table des partitions du disque dur (dangereux mais parfois très utile).

Sommaire de cette page :

Pourquoi installer Grub sur votre second disque dur ?

Identification des disques durs au niveau du BIOS

Procédure à suivre pour installer Grub sur les deux disques durs

Fichiers de configuration complets de Grub

Comment installer Grub sur une disquette ou sur une clé USB ?

Comment configurer un clavier français (AZERTY) dans Grub ?

 

 

 

Retour au sommaire

Pourquoi installer Grub sur votre second disque dur ?

Qui n’a jamais été coincé au démarrage de sa machine, juste le jour ou la mise en marche de Linux ou Windows (je ne juge pas ...) était une question de vie ou de mort ? Juste ce jour là, Grub ne démarre pas : il affiche GRU puis plus rien ... Pas de menu, pas d’interface, pas de réaction aux commandes du clavier. Cela peut aussi arriver avec LILO : il affiche LI puis plus rien ... La raison de cette panne récurente (que tout le monde a connue au moins une fois) est généralement le déplacement des fichiers de Grub sur le disque dur, le déplacement du noyau Linux, le redimensionnement et/ou le déplacement de la partition Linux, ou encore la restauration d’une image Ghost ou Drive Image trop ancienne par rapport au LILO ou au Grub installé dans le MBR (la position absolue sur le disque du noyau de Linux de l’image Ghost ne correspond pas à la position que LILO a récemment mémorisée). Enfin bref, on n’est jamais à l’abris d’une panne de son chargeur de démarrage ! Autre panne fréquente : Grub (ou LILO) a tout simplement disparu, et seul Windows démarre au boot de la machine comme s’il été seul ! Cela intervient soit à la suite d’une installation de Windows (le MBR est alors écrasé sans rien vous demander, et même si vous avez activé la protection anti-virus dans le BIOS permettant en principe de le protéger), ou si vous avez tapé la fameuse commande "non documentée" (mais que tout le monde connait pourtant bien mieux que les paramètres documentés de fdisk) : fdisk /MBR sous MS-DOS. Là encore, comment faire pour démarrer Linux et ré-installer Grub ? J’en profite au passage pour rappeler (une fois de plus) que la commande fdisk /MBR ne doit jamais être utilisée en aveugle : certe elle restaurait le secteur MBR au temps du DOS ou de Windows 9x (en faisant "pointer" le secteur boot vers le fichier IO.SYS), mais elle peut avoir des conséquences catastrophiques dans certains cas avec Windows NT ou Windows XP qui utilisent le chargeur de démarrage NTLDR pour charger le noyau du système (contrairement à DOS ou à Windows 9x qui utilisait un simple pointeur vers IO.SYS). Réfléchissez donc à deux fois, et cherchez à comprendre ce que fait réellement la commande fdisk /MBR avant de l’utiliser trop facilement ou trop fréquemment (si elle n’est pas documentée, et qu’elle n’existe plus sous Windows XP, c’est qu’il y a peut-être une raison ...). Tout ça pour dire qu’il n’y a pas que fdisk /MBR qui permet de restaurer ou de réparer le MBR. Mais revenons au sujet principal de cet article : comment profiter de TOUS les MBR de la machine ?

L’idée qui m’est venue, afin d’augmenter la probabilité de pouvoir démarrer Windows et Linux, même si Grub ne fonctionne plus sur le premier disque dur est la suivante : puisque aujourd’hui tous les BIOS proposent de booter sur le second disque dur, et vu que la plupart des PC possèdent 2 disques durs (voire plus de 2), pourquoi ne pas installer sur le MBR du second disque dur un Grub de secours, qui serait utilisé le jour où le Grub principal (sur le premier disque dur) ne fonctionne plus ?

La question qui se pose est alors la suivante : c’est bien beau et très intéressant, mais est-ce techniquement possible ? Est-ce que Windows, intallé sur le premier disque dur, va accepter de démarrer normalement si le BIOS boote le PC sur le second disque dur ? La réponse est claire et sans amboguïté : en utilisant les services offerts par les BIOS d’aujourd’hui (booter sur n’importe quel disque, et non plus seulement sur le disque maitre du premier controleur IDE, même au delà du 1024 ème cylindre pour les BIOS les plus récents), et en utilisant les fonctionnalités avancées de Grub (installation sur le MBR de n’importe quel disque et démarrage de n’importe quel système, et même au delà du 1024 ème cylindre), booter tous vos systèmes (Linux, Win 9x, et Win XP) à partir du second disque dur est parfaitement réalisable, et ça marche même très bien comme je vais essayer de vous le prouver dans l’article suivant. C’est parti, et on commence tout de suite dans le vif du sujet ! :-)

 

Retour au sommaire

Identification des disques durs au niveau du BIOS

Le BIOS peut booter sur l’un des 2 disques durs, en les permutant. Quelque soit le disque sur lequel le BIOS boote au démarrage, nous les appellerons de manière absolue le disque MAITRE (qui est configuré en maître et qui est actuellement votre seul disque bootable) et le disque ESCLAVE (configuré en esclave et étant votre second disque dur, non bootable pour l’instant). Le maitre sera toujours identifié /dev/hda par Linux, et l’esclave /dev/hdb, quelque soit le disque de démarrage pour le BIOS (Linux ne faisant pas appel aux services du BIOS pour identifier les disques durs).

Sous DOS et sous Windows XP, l’identification dépend du BIOS, et donc du disque de boot :

Remarque 1 : cela reste vraie tant que Windows fait appel au BIOS pour connaitre la structure des disques durs installés (c’est le cas dans le fonctionnement par défaut de Windows). Mais si vous utilisez des pilotes particuliers pour accéder directement au contrôleur IDE, sans passer par les services du BIOS, il se peut alors que Windows soit insensible aux permutations des disques effectuées par le BIOS.

Remarque 2 : pour MS-DOS, la commande fdisk /MBR écrasera toujours le MBR du disque n° 0x80, sans jamais toucher les autres MBR. Mais comme MS-DOS interroge le BIOS pour savoir qui est le disque 0x80, fdisk /MBR écrasera le secteur boot du disque sur lequel le BIOS a booté (le seul disque bootable aux yeux du DOS, puisque DOS ignore que le BIOS peut permuter les disques). Ceci est la preuve, s’il en fallait une, que le BIOS est aujourd’hui bien plus performant, bien plus moderne, bien plus avancé, et bien plus évolutif et évolué que MS-DOS ! :-)

 

Retour au sommaire

Procédure à suivre pour installer Grub sur les 2 disques durs

Passons maintenant à la pratique, et voyons concrètement ce qu’il faut faire pour rendre vos 2 disques dur bootables. L’astuce consiste à avoir 2 partitions "symétriques" pour Grub, c’est-à-dire à avoir Linux installé dans les partitions hda1 et hdb1 (pas forcément la même version de Linux), et à avoir le même répertoire /boot/grub sur ces deux partitions (à l’exception du fichier de configuration de Grub et de l’image de fond qui pourront être différentes, pour justement différencier les 2 Grub).

Remarque importante : Grub 0.94 interprétant sans problème les systèmes de fichiers EXT2, EXT3, et FAT32, vous pouvez très bien avoir Windows 9x sur la partition hda1 (avec hda1 formatée en FAT32), et Linux sur la partition hdb1 (avec hdb1 formatée en EXT2 ou Ext3). L’important est de créer les mêmes répertoires /boot/grub sur ces deux partitions, mais Grub n’est pas forcément lié à Linux et à son système de fichier : Grub peut très bien être installé sur une partition FAT32. Dans l’exemple ci-dessous je vais tout de même considérer qu’on va installer 2 versions différentes de Linux :

Le Grub utilisé est alors le Grub de Linux Fedora Core 2, à savoir Grub version 0.94.

Dans les 4 étapes suivantes, le BIOS bootera normalement sur le disque maître (sur hda) :

Etape 1 - Installer normalement Linux sur hda1 (Fedora Core 2 dans mon cas), et Grub sur le MBR du disque hda (sur le disque maitre)

Etape 2 - Installer normalement Linux sur hdb1 (Red Hat 8 dans mon cas), sans installer de lanceur Grub ou Lilo sur les MBR

Etape 3 - Booter sur Linux installé en hda1 (en utilisant Grub), et modifier le fichier de configuration de Grub en rajoutant une entrée pour démarrer le second linux installé sur hdb1 (voir ci-dessous pour des exemples de fichiers de configuration GRUB.CONF). Recopier ensuite le répertoire /hda1/boot/grub sur /hdb1/boot/grub : les 2 partitions hda1 et hdb1 sont maintenant "symétriques" pour Grub : si les 2 disques sont permutés par le Bios, Grub ne le verra pas et trouvera toujours les fichiers dont il a besoins !

Etape 4 - Rebooter la machine, et à partir de la ligne de commande de Grub (touche c), installer Grub sur le MBR du second disque dur en lui indiquant d’aller lire les fichiers de configuration sur la partition hdb1 (disque esclave) ; pour cela, tapez les deux commandes suivantes :

grub> root (hd1,0)
grub> setup (hd1)

Appuyez sur ESC pour retourner au menu de Grub.

Maintenant Grub est installé sur les MBR des 2 disques durs, et chaque Grub utilise sont propre fichier de configuration, que l’on pourra alors personnaliser :

Remarque : cette technique de "clonage" de Grub fonctionne même si votre seconde version de Linux (sur hdb1) est un vieux Linux ne possédant pas Grub (comme Red Hat 6 ou Red Hat 7 par exemple, qui ne proposaient que Lilo à l’époque). En effet, aussi bien sur le MBR de hda que sur le MBR de hdb vous avez installé le Grub de votre Linux qui est sur hda1 : vous utilisez donc 2 fois la même version de Grub (Grub 0.94 dans mon cas).

Parmi les personnalisations qu’il est possible d’apporter à chacun des Grub, on peut y ajouter les 4 améliorations suivantes :

Amélioration 1 - modifier le fichier de configuration /hdb1/boot/grub/grub.conf afin que le Grub installé sur hdb fonctionne lorsque le BIOS boote sur hdb (le disque esclave) :

map (hd0) (hd1)
map (hd1) (hd0)

De plus, toujours pour le démarrage de Windows XP ou DOS, il faut remplacer rootnoverify (hd0,x) par rootnoverify (hd1,x) et il faut remplacer rootnoverify (hd1,x) par rootnoverify (hd0,x).

Amélioration 2 - mettre une image de fond différente dans les répertoires /hda1/boot/grub/ et /hdb1/boot/grub/ : cela permettra de différencier, par la couleur du fond, si le BIOS a booté sur le disque maitre ou sur le disque esclave. En effet, si vous avez une ligne splashimage=(hd0,0)/boot/grub/splash.xpm.gz dans chacun des deux fichiers de configuration, alors :

L’invertion des disques durs pourra donc être repérée au niveau de l’image du fond de Grub. J’en profite pour préciser que l’image splash.xpm qui est affichée sur le fond de l’écran quand Grub fonctionne en mode graphique (et qui est enregistrée dans le répertoire /boot/grub) doit avoir les caractéristiques suivantes :

Amélioration 3 - créer "un pont" pour passer librement de Grub sur hda à Grub sur hdb. Pour cela : Dans le fichier de configuration /hda1/boot/grub/grub.conf, rajoutez les 3 lignes suivantes :

title Aller a GRUB sur hdb
   rootnoverify (hd1)
   chainloader +1

Et dans le fichier de configuration /hdb1/boot/grub/grub.conf, rajoutez les 3 lignes suivantes :

title Aller a GRUB sur hda
   rootnoverify (ha1)
   chainloader +1

chainloader +1 est la commande de Grub qui permet de chaîner plusieurs chargeurs de démarage (c’est cette commande qui est utilisée pour lancer NTLDR, le chargeur de démarrage de Windows XP).

Amélioration 4 - ajouter une entrée dans Grub qui permet de permuter "manuellement" les disques durs. Pour cela :

ajoutez les 5 lignes suivantes dans le fichier de configuration /hda1/boot/grub/grub.conf :

title Permuter les disques hd0 et hd1
   map (hd0) (hd1)
   map (hd1) (hd0)
   rootnoverify (hd1)
   chainloader +1

ajoutez les 5 lignes suivantes dans le fichier de configuration /hdb1/boot/grub/grub.conf :

title Permuter les disques hd0 et hd1
   map (hd0) (hd1)
   map (hd1) (hd0)
   rootnoverify (hd0)
   chainloader +1

Les deux lignes map permuttent les disques durs comme le fait le BIOS (pour Grub et pour Windows, mais pas pour Linux ...), et les deux dernières lignes relance le Grub courant afin de prendre en compte la permutation, et change en même temps l’image de fond qui indique que cette permutation a effectivement été prise en compte. Remarquez que pour recharger Grub sur le disque maitre (hda) on utilise hd1 comme racine, et pour charger Grub sur le disque esclave (hdb) on utilise hd0 comme racine : c’est normal car on vient juste de permuter les disques, et que Grub est influencé par sa propre permutation !

Après toute ces configurations, vous avez 2 disques durs bootables sur votre machine, avec un Grub différent installé sur chaque MBR des disques durs, mais :

Pour utiliser Grub installé sur hda, alors que le BIOS a booté sur hdb, il faudra éditer les entrées de Grub et remplacé hd0 par hd1 et inversement, sans oublier de rajouter les 2 lignes map de permutation pour lancer Windows. Idem pour utiliser Grub installé sur hdb si le Bios boote sur hda.

 

Retour au sommaire

Fichiers de configuration complets de Grub

Voici maintenant mes 2 fichiers de configuration grub.conf

Le premier, installé sur /hda1/boot/grub/grub.conf fonctionne si le BIOS boote "à l’endroit" (c’est-à-dire sur le disque maitre, sans permutation des disques), et le second, installé sur /hdb1/boot/grub/grub.conf fonctionne si le BIOS boote "à l’envers" (c’est-à-dire sur le disque esclave, en permutant les deux disques durs 0x80 et 0x81).

Pour information, voici la configuration de mes systèmes :

J’ai donc en tout 2 Linux et 2 Windows, soit 4 systèmes bootables sur ma machine : si avec tout ça je n’arrive pas à booter au moins un système, je n’ai plus qu’à jeter mon PC par la fenêtre (sans jeu de mots, je n’ai pas dit jeter les MS-Fenêtres !) ! :-))

Remarque : j’ai supprimé des fichiers GRUB.CONF ci-dessous toutes les commandes gadgets et farfeulues, du style color, terminal, background, timeout, default, etc. pour ne garder que les commandes essencielles relatives aux boots des systèmes, à la permutation manuelles des disques, et au passage d’un Grub à l’autre.

Fichier de configuration de Grub, enregistré sur /hda1/boot/grub/grub.conf (sur le disque maitre) :

########################################################################
# L'image de fond sera lu sur le disque maitre ou esclave, selon la permutation des disques :
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

########################################################################
title Fedora Core 2 sur hda1
   root (hd0,0)
   kernel /boot/vmlinuz-2.6.7-1.494.2.2 ro root=LABEL=/ rhgb quiet
   initrd /boot/initrd-2.6.7-1.494.2.2.img

########################################################################
title Red Hat 8.0 sur hdb1
kernel (hd1,0)/boot/vmlinuz root=/dev/hdb1

########################################################################
title Windows XP sur hda2
   rootnoverify (hd0,1)
   chainloader +1

########################################################################
title Aller a GRUB sur hdb
   rootnoverify (hd1)
   chainloader +1

########################################################################
title Permuter les disques hd0 et hd1
   map (hd0) (hd1)
   map (hd1) (hd0)
   rootnoverify (hd1)
   chainloader +1

########################################################################
# FIN DU PREMIER FICHIER DE CONFIGURATION GRUB.CONF
########################################################################


Fichier de configuration de Grub, enregistré sur /hdb1/boot/grub/grub.conf  (sur le disque esclave) :

########################################################################
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

########################################################################
title Fedora Core 2 sur hda1
   root (hd1,0)
   kernel /boot/vmlinuz-2.6.7-1.494.2.2 ro root=LABEL=/ rhgb quiet
   initrd /boot/initrd-2.6.7-1.494.2.2.img

########################################################################
title Red Hat 8.0 sur hdb1
kernel (hd0,0)/boot/vmlinuz root=/dev/hdb1

########################################################################
title Windows XP sur hda2
   map (hd0) (hd1)
   map (hd1) (hd0)
       rootnoverify (hd1,1)
   chainloader +1

########################################################################
title Aller a GRUB sur hda
   rootnoverify (hd0)
   chainloader +1

########################################################################
title Permuter les disques hd0 et hd1
   map (hd0) (hd1)
   map (hd1) (hd0)
   rootnoverify (hd0)
   chainloader +1

########################################################################
# FIN DU SECOND FICHIER DE CONFIGURATION GRUB.CONF
########################################################################

 

Retour au sommaire

Comment installer Grub sur une disquette ou sur une clé USB ?

Grub reconnaît le périphérique "lecteur de disquette" et l’identifie sous le nom fd0 (comme le fait Linux). Pour installer Grub sur une disquette il faudra taper les deux commandes suivantes : la première désigne la partition racine sur laquelle seront lus les fichiers de Grup (stage2 et fichier de configuration), et la seconde ligne installe Grub sur le secteur boot de la disquette :

grub> root (hd0,0)
grub> setup (fd0)

Malheureusement, Grub ne reconnaît pas les clés USB parmi ses périphériques. La solution que j’ai trouvée pour installer tout de même Grub sur ma clé USB, afin de pouvoir booter ma machine sur ma clé, est tout simplement de copier manuellement les 446 premiers octets du secteurs boot (c’est à dire le secteur boot SANS ECRASER la table des partitions principales), d’une disquette ou d’un disque dur vers ma clé, en utilisant le programme dd dans un terminal sous Linux :

Copie de Grub (446 octets du secteur boot), d’une disquette vers la clé USB :

dd if=/dev/fd0 of=/dev/sda bs=446 count=1

Remarque : on ne copie pas 446 octets à la place de 512 pour sauter la table des partitions principales de la disquette (puisque le secteur boot de la disquette ne contient pas de table de partition), mais pour éviter d’écraser la table des partitions principales de la clé USB (même si la clé ne contient qu’une seule partition, son MBR fini par une table de partitions avec un seul descripteur utilisé)

Copie de Grub (446 octets du MBR), d’un disque dur vers la clé USB :

dd if=/dev/hda of=/dev/sda bs=446 count=1

Après l’une de ces deux commandes, ma clé USB est parfaitement bootable, en configurant le BIOS de ma carte mère ASUS A7N8X - X afin qu’il boote sur un périphérique USB-ZIP (et non USB-FDD ou USB-HDD).

Ainsi, si le MBR de mon premier disque dur est écrasé (par Windows, au hasard ...), si le MBR de mon second disque dur est également endomagé (c’est à dire non bootable), déjà j’ai vraiment pas de chance, mais il me reste toujours ma clé USB, ou mes disquettes boot contenant Grub pour démarrer tout de même mes systèmes (Linux Red Hat 8.0, Linux Fedora Core 2, MS-DOS, Windows 98, et Windows XP) qui sont installés sur ma machine ! Super, non ? ! On voit ici que la stabilité et la fiabilité d’un système informatique de type PC n’est pas automatique : elle est le résultat d’un travail de préparation et de consolidation, réfléchi et contrôlé, sans qui la fragilité du MBR peut rendre rapidement et facilement votre machine non bootable, et ce, quel que soit les systèmes installés (même si vous avez les systèmes d’exploitations "derniers cris", même si vos systèmes sont mis à jour régulièrement, même si vous utilisé un système de fichier performant, fiable, et robuste (NTFS ou EXT3), vous n’êtes jamais à l’abris d’une panne du MBR (dû généralement à un virus ou à une fausse manipulation) rendant votre premier disque non bootable, et donc votre machine inutilisable).

Evidemment, ce système super-boot permettant de booter la machine par plusieurs Grub évite d’être coincé la jour où Windows écrase le MBR du premier disque dur (ou si vous lancez fdisk /MBR ce qui revient au même), mais ne sera d’aucune utilité le jour où votre table des partitions principales (les 66 derniers octets du MBR : 4x16 octets pour les 4 descripteurs de partitions principales + 2 octets de signature 55 et AA) est endomagée ! Car en effet, je précise que, contrairement à une idée reçue, l’intégralité de la table des 4 partitions principales d’un disque dur se trouve dans le premier secteur physique du disque, à savoir le MBR (et non quelques secteurs plus loin ...). Contre ce problème d’écrasement de la table des partitions principales il n’y a qu’une seule solution : sauvegarder régulièrement votre (ou plutôt vos) MBR, en les dupliquant sur tous vos disques durs et sur plusieurs disquettes boot (ou clé USB bootable) de secours afin d’être prêt à les restaurer le jour d’une catastrophe, ou d’un attaque virale.

Voici comment sauvegarder votre MBR dans un fichier, en utilisant toujours l’utilitaire dd sous Linux :

dd if=/dev/hda of=secteur_boot_de_hda bs=512 count=1

Et voici la commande permettant de restaurer le MBR, A UTILISER AVEC TOUTES LES PRECAUTIONS QUI S’IMPOSENT !

dd if=secteur_boot_de_hda of=/dev/hda bs=512 count=1

Dans les deux commandes précédentes, secteur_boot_de_hda est un fichier de 512 octets représentant l’intégralité du MBR, et contenant donc la tables des 4 partitions principales de votre disque dur hda (et non hdb : les disque n’ayant pas la même table de partitions, ils n’ont donc pas le même MBR ! J’y reviens plus loin ...). Conseil élémentaire : indiquez dans le nom des fichiers de MBR à quel disque appartient ce secteur boot. L’idéal, afin de chasser toute ambiguité le jour de la restauration, est de faire apparaitre dans le nom des fichiers de sauvegarde des secteur boot :

Si vous possédez une partition étendue sur votre disque, il faudra alors sauvegarder son secteur de partition (ou secteur boot, c’est-à-dire son premier secteur) par le même procédé, afin de pouvoir reconstituer les partitions logiques en cas de destruction de la table des partitions logiques. Rappelez-vous : il suffit d’écraser seulement 2 secteurs sur votre disque dur pour détruire toutes la structure des partitions qu’il contient !

Tous ces rappels de prudence dépassant de loin le sujet principal de cet article sur Grub, je vais donc m’arrêter là sur la sauvegarde des tables de partitions (j’ai bien dit LES tables de partitions : la table des partitions principales, enregistrée dans le MBR (premier secteur du disque) et la table des partitions logiques enregistrée dans le premier secteur de la partition étendue, c’est-à-dire en plein milieu du disque).

A retenir tout de même : le MBR de votre disque dur contient un morceau de Grub (la partie "bootable", pour simplifier), mais contient surtout la table des partitions principales. Evitez donc de faire mumuse avec le MBR d’un disque dur de 160 Go plein de documents importants qui n’ont pas été sauvegardés, si vous n’avez pas enregistré (sur disquette ou mieux, sur papier) votre table des partitions principales. Pour vos expériences sur la table des partitions, c’est peut-être le moment de ressortir votre bon vieux ordinateur 486, vous savez, celui qui avait un disque dur de 80 Mo ! Enfin, pour finir, retenez surtout qu’il n’est pas possible (mais vous l’avez sans doute compris) de recopier intégralement le MBR de votre premier disque dur sur le MBR de votre second disque dur dans le but de dupliquer Grub (n’est ce pas ...). La commande suivante, que j’écris tout de même en entier (tant pis pour les non francophones ...) EST A SURTOUT PAS TAPER SOUS PENNE DE PERDRE LA TABLE DES PARTITIONS PRINCIPALES DE VOTRE SECOND DISQUE DUR !!!

Ne jamais taper : dd if=/dev/hda of=/dev/hdb bs=512 count=1 : écrase le MBR (et donc la table des partitions principales) du disque hdb !

Rappel : la ligne de commande ci-dessus montre CE QU’IL NE FAUT PAS FAIRE pour copier Grub du premier disque vers le second (comment ça se dit en anglais "Ne jamais taper" ??? Je plein les pauvres anglophones champions du copier-coller ...).

 

Retour au sommaire

Comment configurer un clavier français dans Grub ?

Vous l’avez sans doute remarqué, Grub considère que vous possédez un clavier QWERTY (en fait il ne possède pas de pilote de clavier, et utilise directement les services du BIOS (l’interruption 0x16) pour accéder au clavier : l’erreur vient donc de votre BIOS qui considère que vous avez un clavier QWERTY). Bien que vous commancez à vous débrouiller pour écrire "en QWERTY" avec votre clavier AZERTY, voici une solution pour utiliser normalement votre clavier AZERTY avec Grub : le principe ne consiste pas à charger un pilote de clavier adapté à votre configuration, mais tout simplement à remplacer une par une les touches du clavier QWERTY par leur équivalent en AZERTY, en utilisant la commande SETKEY de Grub. Pour utiliser librement toutes les touches de votre clavier AZERTY sous Grub, il vous faut rajouter les lignes suivantes au début de votre fichier GRUB.CONF, ces 48 commandes SETKEY réalisant la conversion une à une des 48 touches de votre clavier, différentes entre un QWERTY et un AZERTY :

# Emulation d'un clavier azerty FRANCAIS dans Grub.conf
setkey less backquote
setkey greater tilde
setkey ampersand 1
setkey 1 exclam
setkey tilde 2
setkey 2 at
setkey doublequote 3
setkey 3 numbersign
setkey quote 4
setkey 4 dollar
setkey parenleft 5
setkey 5 percent
setkey minus 6
setkey 6 caret
setkey backquote 7
setkey 7 ampersand
setkey underscore 8
setkey 8 asterisk
setkey backslash 9
setkey 9 parenleft
setkey at 0
setkey 0 parenright
setkey parenright minus
setkey numbersign underscore
setkey a q
setkey A Q
setkey z w
setkey Z W
setkey caret bracketleft
setkey dollar bracketright
setkey q a
setkey Q A
setkey m semicolon
setkey M colon
setkey bracketleft quote
setkey percent doublequote
setkey asterisk backslash
setkey bracketright bar
setkey w zsetkey W Z
setkey comma m
setkey question M
setkey semicolon comma
setkey period less
setkey colon period
setkey slash greater
setkey exclam slash
setkey bar question

Remarque : en rajoutant ces commandes setkey dans votre fichier Grub.conf, il ne faudra plus utiliser le pavé numérique pour saisir les chiffres ou les opérateurs arithmétiques (. + - * et /). De plus, dans Grub, le vérouillage des majuscules (touche Caps Lock) a un effet sur les lettres, mais n’a aucun effet sur les symboles de ponctuation, ni sur les chiffres.

Remarquez, pour finir, que les caractères + (code plus) et = (code equal) se situent sur les même touches entre un clavier QWERTY et un clavier AZERTY : aucune conversion n’est donc nécessaire pour ces deux caractères.

 

Retour au sommaire

 

Conclusion

Voici terminé notre voyage à travers quelques une des fonctionnalités de Grub, et notament la possibilité de rendre bootables tous vos disques durs, et pas seulement le premier. Si après ça, vous me dites encore que Grub et Lilo c’est pareil pour vous, alors relisez attentivement tout cet article, et surtout passez de vous même à la pratique, en expérimentant les possibilités bien différentes des deux chargeurs de démarrage (attention à votre table des partitions principales dans votre MBR !) ;-)