Ceci est une ancienne révision du document !
GRand Unified Bootloader, version 2 (GRUB 2)
GRand Unified Bootloader, version 2 (ou GRUB 2) est la seconde version de GNU GRUB. C'est un programme informatique permettant de charger un système d'exploitation. Il peut amorcer par lui-même des systèmes compatibles avec la norme POSIX (GNU/Linux, *BSD, Mac OS, etc.) et possède la capacité d'enchaîner vers un autre chargeur d'amorçage pour les systèmes non compatibles avec la norme POSIX.
Plus qu'une continuité du projet GRUB Legacy précédent, GRUB 2 en est une réécriture complète. Basé sur le projet de recherche PUPA, GRUB 2 a pour but d'être un chargeur d'amorçage plus modulaire et portable que son prédécesseur. Quelques-uns des objectifs visés par GRUB 2 sont les suivants :
- une interface graphique ;
- le chargement de modules au moment de l'exécution plutôt qu'à la compilation ;
- la portabilité vers diverses architectures matérielles (BIOS, EFI, Coreboot…) ;
- un mode de secours reprend la main en cas d'erreur de chargement. Les stage1.5 ont été éliminés ;
- une révision de la numérotation des partitions, qui ne pouvait être rapportée dans GRUB Legacy.
GRUB 2 est un projet en développement actif, contrairement à GRUB 0.9x (renommé GRUB Legacy). Il est disponible en version de développement pour toutes les versions d'Ubuntu et il sera probablement le chargeur d'amorçage par défaut d'Ubuntu 9.101) pour toute nouvelle installation.2)
À qui s'adresse GRUB 2 ?
Bien qu'il soit disponible dans les dépôts de logiciels d'Ubuntu depuis la version 6.06 LTS d'Ubuntu, GRUB 2 ne s'adresse pas à tout le monde. Il est en développement actif et n'a, jusqu'à maintenant, jamais bénéficié de la même attention que celle portée à GRUB Legacy. À l'heure actuelle, GRUB 2 s'adresse surtout aux développeurs et aux testeurs.
Installation
GRUB 2 est disponible dans la section Universe des dépôts officiels (pour Ubuntu 6.06 LTS, 8.04 LTS et 8.10) ou la section Main des dépôts officiels (Ubuntu 9.04 et 9.10).
- Le processus de configuration de GRUB 2 détecte la présence d'une précédente version de GRUB Legacy installée dans le secteur d'amorçage principal (MBR) de votre disque dur. Il vous propose de laisser GRUB Legacy en tant que chargeur d'amorçage principal et de configurer une entrée de menu pour chaîner vers GRUB 2, vous permettant ainsi de vérifier que GRUB 2 fonctionne.
Choisissez Oui. - Ubuntu 9.04 et antérieures : Avant de redémarrer votre ordinateur, corrigez les modifications apportées par le processus de configuration de GRUB 2 à votre fichier de menu
menu.lst
de GRUB Legacy. En effet, celui-ci modifie inopinément toutes les entrées de menu de GRUB Legacy ; si vous n'êtes pas préparé, vous serez dans l'impossibilité de démarrer Ubuntu. À ce sujet, consultez la section Éviter les erreurs 11 à l'exécution d'une entrée de menu de GRUB Legacy de la rubrique Personnalisation de l'installation. Ce bogue a été corrigé sous Ubuntu 9.10 ; - Redémarrez votre ordinateur. Vous retrouvez le menu habituel de GRUB Legacy, vous permettant de charger Ubuntu et vos autres systèmes d'exploitation. Pour chaîner vers GRUB 2, exécutez l'entrée de menu Chainload into GRUB 2.
Ce schéma vous laisse l'opportunité de tester le fonctionnement des diverses entrées de menu de GRUB 2 sans vous pénaliser en cas d'erreur de GRUB 2. En effet, si vous vous apercevez que GRUB 2 ne fonctionne pas ou qu'une erreur s'est produite lors de sa configuration (ex : les entrées de menu de GRUB 2 ne chargent pas Ubuntu), vous pouvez toujours retourner dans Ubuntu à l'aide de GRUB Legacy.
Lorsque vos tests de GRUB 2 sont complétés et vous souhaitez installer GRUB 2 comme unique chargeur d'amorçage, ouvrez un terminal et exécutez la commande suivante :
~$ sudo upgrade-from-grub-legacy
Ceci remplace définitivement GRUB Legacy en l'écrasant par GRUB 2 dans le secteur d'amorçage principal de l'ordinateur.
Si GRUB 2 ne vous convient pas et vous préférez conserver uniquement GRUB Legacy dans votre ordinateur, réinstallez le paquet grub
pour désinstaller GRUB 2.
Personnalisation de l'installation
Puisque GRUB 2 est une réécriture complète de GRUB, les précédents tutoriels écrits pour GRUB Legacy ne sont plus d'actualité avec cette nouvelle mouture. De plus, les divers scripts et logiciels écrits pour personnaliser GRUB Legacy sont incompatibles avec GRUB 2. Avant de suivre un tutoriel ou utiliser un logiciel pour GRUB, assurez-vous qu'il a été écrit et testé pour GRUB 2.
Éviter les erreurs 11 à l'exécution d'une entrée de menu de GRUB Legacy (Ubuntu 9.04 et antérieures)
Le processus de configuration de GRUB 2 pour Ubuntu n'est pas au point, probablement récupéré directement des dépôts de Debian Sid. Le processus de configuration a modifié de manière incorrecte toutes vos entrées de menu pour Ubuntu et celle pour chaîner vers GRUB 2, causant une erreur 11 à chaque tentative de chargement. Pour corriger vos entrées de menu :
- Ouvrez une invite de commande rapide en appuyant sur les touches
[Alt]
+[F2]
de votre clavier ; - Exécutez la commande suivante :
gksudo gedit /boot/grub/menu.lst
Saisissez votre mot de passe ;
- Recherchez la ligne contenant le texte suivant :
## ## End Default Options ##
. Les lignes suivant celle-ci contiennent les instructions de chargement des diverses entrées de menu de GRUB Legacy ; - Pour chacune des entrées suivantes, modifiez le terme
root
paruuid
. Par exemple, l'entrée de menu suivante :title Chainload into GRUB 2 root 70e29811-71a3-4553-a16c-1cce2ff334ed kernel /boot/grub/core.img
Après modification du terme
root
paruuid
, elle devient :title Chainload into GRUB 2 uuid 70e29811-71a3-4553-a16c-1cce2ff334ed kernel /boot/grub/core.img
- Modifiez toutes les entrées de menu jusqu'à ce que vous atteigniez la ligne contenant le texte suivant :
### END DEBIAN AUTOMAGIC KERNELS LIST
. Les entrées suivantes n'ont pas été modifiées et doivent fonctionner normalement sans modification ; - Sauvegardez les modifications apportées au menu de GRUB Legacy et redémarrez votre ordinateur pour observer vos modifications.
Modifier les intitulés des entrées du menu de GRUB Legacy (Ubuntu 9.04 et antérieures)
Au redémarrage suivant de votre ordinateur, vous remarquez que toutes les entrées de menu pour Ubuntu ont été remplacées par des entrées de menu pour Debian GNU/Linux. Ne vous inquiétez pas : Ubuntu est toujours installé dans votre ordinateur, il n'a pas été remplacé par Debian. Le processus de configuration de GRUB 2 pour Ubuntu n'est pas au point, probablement récupéré directement des dépôts de Debian Sid. Le processus de configuration a uniquement modifié les intitulés de vos entrées de menu. Les entrées portant le nom "Debian GNU/Linux" chargent Ubuntu.
Pour modifier ces intitulés :
- Ouvrez une invite de commande rapide en appuyant sur les touches
[Alt]
+[F2]
de votre clavier ; - Exécutez la commande suivante :
gksudo gedit /boot/grub/menu.lst
Saisissez votre mot de passe ;
- Dans l'éditeur de texte Gedit, rendez-vous dans le menu Rechercher et exécutez Remplacer… ;
- Dans la case Rechercher, inscrivez Debian GNU/Linux et dans la case Remplacer par, inscrivez Ubuntu ;
- Appuyez sur le bouton Tout remplacer ;
- Sauvegardez les modifications apportées au menu de GRUB Legacy et redémarrez votre ordinateur pour observer vos modifications.
Configuration
A partir d'Ubuntu 9.10
Pour configurer grub 2, il faut procéder en deux étapes:
- modifier /etc/default/grub en faisant:
sudo gedit /etc/default/grub
- Appliquer les modification à grub.cfg via:
sudo update-grub2
Pour expliquer le fonctionnement du fichier /etc/default/grub, je vous joins ci-dessous ce que j'ai trouvé:
GRUB_HIDDEN_TIMEOUT=0
⇒ En commentant cette ligne (rajoutez # avant GRUB_HIDDEN…) vous pouvez afficher les entrées de grub au démarrage.
Problèmes rencontrés
J'ai redémarré mon ordinateur et dans le menu d'amorçage de GRUB Legacy, je ne vois plus Ubuntu. Je ne peux charger que Debian GNU/Linux. Ai-je supprimé Ubuntu ?
Ubuntu est toujours installé dans votre ordinateur. Le processus de configuration de GRUB 2 pour Ubuntu n'est pas au point, probablement récupéré directement des dépôts de Debian Sid. Le processus de configuration a uniquement modifié les intitulés de vos entrées de menu. Les entrées portant le nom "Debian GNU/Linux" chargent Ubuntu.
J'obtiens le message d'erreur "Error 11: Unrecognized device string" au démarrage d'Ubuntu ou au chaînage vers GRUB 2. Que faire ?
Si votre version d'Ubuntu est la 9.04 ou antérieure, vous avez dû oublier de corriger les modifications apportées au fichier de menu de GRUB Legacy, telles que décrites plus haut dans ce document. Pour charger tout de même Ubuntu :
- À l'aide des flèches directionnelles montantes et descendantes de votre clavier, surlignez l'entrée de menu pour GRUB 2 ou pour Ubuntu ;
- Appuyez sur la touche
[e]
de votre clavier ; - Surlignez la première instruction et appuyez sur la touche
[e]
de votre clavier ; - Dans cette ligne d'instruction, remplacez le terme
root
paruuid
. N'apportez que cette modification. Appuyez sur la touche[Entrée]
de votre clavier ; - Appuyez sur la touche
[b]
de votre clavier pour exécuter le chargement de cette entrée de menu.
Pourquoi GRUB Legacy est-il toujours mon chargeur d'amorçage principal ? Comment n'utiliser que GRUB 2 ?
Ce schéma vous laisse l'opportunité de tester le fonctionnement des diverses entrées de menu de GRUB 2 sans vous pénaliser en cas d'erreur de GRUB 2. En effet, si vous vous apercevez que GRUB 2 ne fonctionne pas ou qu'une erreur s'est produite lors de sa configuration (ex : les entrées de menu de GRUB 2 ne chargent pas Ubuntu), vous pouvez toujours retourner dans Ubuntu à l'aide de GRUB Legacy. Lorsque vos tests de GRUB 2 sont complétés et vous souhaitez installer GRUB 2 comme unique chargeur d'amorçage, ouvrez un terminal et exécutez la commande suivante :
~$ sudo upgrade-from-grub-legacy
Ceci remplace définitivement GRUB Legacy en l'écrasant par GRUB 2 dans le secteur d'amorçage principal de l'ordinateur.
J'obtiens un message "You need to load the kernel first" lors du chargement d'Ubuntu par GRUB 2. Qu'est-ce que ça signifie ?
GRUB 2 gère différemment la numérotation des partitions que son prédécesseur, GRUB Legacy. Là où celui-ci comptait les partitions à partir de 0, GRUB 2 les compte à partir de 1. Ainsi, la première partition primaire du premier disque dur d'un ordinateur, notée (hd0,0)
sous GRUB Legacy, est dénommée (hd0,1)
sous GRUB 2. Cependant, un bogue dans l'installateur de GRUB 2 grub-installer
dans la version alpha2 de Karmic Koala prenait mal en compte cette nouvelle numérotation. Un correctif durable a été publié chez Debian et a été repris dans les versions alpha suivantes. Plus d'informations : Bug #387326: "you need to load the kernel first".
Désinstallation
Comme tous les chargeurs d'amorçage, GRUB 2 ne peut pas être désinstallé. Il ne peut qu'être écrasé par un autre chargeur d'amorçage. Si GRUB 2 ne vous convient pas et vous préférez conserver uniquement GRUB Legacy dans votre ordinateur, réinstallez le paquet grub pour réinstaller GRUB Legacy et ainsi écraser GRUB 2.
Liens
- (en) GRUB 2 : site officiel
- (en) GNU GRUB 2 Manual : manuel d'utilisation de GRUB 2 et ses outils
- (en) Grub2Intro : des tutoriels pour paramétrer GRUB 2
Contributeurs : AlexandreP