Cette page n'a pas encore d'étiquettes.
Apportez votre aide…

Ceci est une ancienne révision du document !


GRand Unified Bootloader, version 2 (GRUB 2)

gnu-head-sm.jpg

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 :

GRUB 2

  • 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.

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).

  1. Installez le paquet grub-pc (pour Ubuntu 6.06 LTS, installez le paquet grub2) ;
  2. 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.
    Invite d'action à prendre concernant l'installation de GRUB 2. Répondez "Oui" à la question. Cliquez sur l'image pour la voir en taille pleine.
    Choisissez Oui.
  3. 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 ;
  4. 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.

À propos des tutoriels, scripts et logiciels pour GRUB Legacy et leur incompatibilité avec GRUB 2 :

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 :

  1. Ouvrez une invite de commande rapide en appuyant sur les touches [Alt]+[F2] de votre clavier ;
  2. Exécutez la commande suivante :
    gksudo gedit /boot/grub/menu.lst

    Saisissez votre mot de passe ;

  3. 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 ;
  4. Pour chacune des entrées suivantes, modifiez le terme root par uuid. 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 par uuid, elle devient :

    title		Chainload into GRUB 2
    uuid		70e29811-71a3-4553-a16c-1cce2ff334ed
    kernel		/boot/grub/core.img
  5. 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 ;
  6. 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 :

  1. Ouvrez une invite de commande rapide en appuyant sur les touches [Alt]+[F2] de votre clavier ;
  2. Exécutez la commande suivante :
    gksudo gedit /boot/grub/menu.lst

    Saisissez votre mot de passe ;

  3. Dans l'éditeur de texte Gedit, rendez-vous dans le menu Rechercher et exécutez Remplacer… ;
  4. Dans la case Rechercher, inscrivez Debian GNU/Linux et dans la case Remplacer par, inscrivez Ubuntu ;
  5. Appuyez sur le bouton Tout remplacer ;
  6. Sauvegardez les modifications apportées au menu de GRUB Legacy et redémarrez votre ordinateur pour observer vos modifications.

A partir d'Ubuntu 9.10

Pour configurer grub 2, il faut procéder en deux étapes:

  1. modifier /etc/default/grub en faisant:
sudo gedit /etc/default/grub
  1. 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.

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 :

  1. À l'aide des flèches directionnelles montantes et descendantes de votre clavier, surlignez l'entrée de menu pour GRUB 2 ou pour Ubuntu ;
  2. Appuyez sur la touche [e] de votre clavier ;
  3. Surlignez la première instruction et appuyez sur la touche [e] de votre clavier ;
  4. Dans cette ligne d'instruction, remplacez le terme root par uuid. N'apportez que cette modification. Appuyez sur la touche [Entrée] de votre clavier ;
  5. Appuyez sur la touche [b] de votre clavier pour exécuter le chargement de cette entrée de menu.

Surlignez l'entrée de menu désirée et appuyez sur [e]. Cliquez sur l'image pour voir la capture en plus grand format. Surlignez la première instruction et appuyez sur [e]. Cliquez sur l'image pour voir la capture en plus grand format. Modifiez le terme "root"... Cliquez sur l'image pour voir la capture en plus grand format. ... par "uuid". Appuyez sur [Entrée]. Cliquez sur l'image pour voir la capture en plus grand format. Appuyez sur [b] pour charger l'entrée de menu. Cliquez sur l'image pour voir la capture en plus grand format.

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".

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.


Contributeurs : AlexandreP


1)
Ce changement est intégré à Karmic Koala depuis la version alpha 2. Selon les retours d'expérience, il pourrait être décidé plus tard de faire marche arrière et revenir vers la version plus stable de GRUB Legacy.
2)
GRUB 2 sera le chargeur par défaut des nouvelles installations d'Ubuntu 9.10. Dans les cas de mises à niveau, GRUB Legacy sera laissé en place comme chargeur d'amorçage principal, et GRUB 2 ajoutera une entrée en chaînage vers lui-même afin que l'administrateur système teste la viabilité d'un remplacement.
  • grub2.1253009674.txt.gz
  • Dernière modification: Le 18/04/2011, 14:59
  • (modification externe)