GRand Unified Bootloader

Un article de Wikipédia, l'encyclopédie libre.

Image:Grub2.png GNU GRUB
Développeur Projet GNU
Dernière version 1.96 (le 3 février 2008)
Type Chargeur d'amorçage
Licence GNU GPL 3
Site web www.gnu.org/software/grub

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

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 boot (pas besoin de réinstaller GRUB dans le secteur de boot après un changement de configuration, contrairement à LILO), une ligne de commande permettant de changer la configuration au boot et surtout la reconnaissance en natif des divers systèmes de fichiers existants. Il possède également une sorte de langage de commande simple permettant de « rattraper » un boot qui se serait mal passé, suite au mauvais adressage d'une partition, par exemple.

Grub doit bien entendu être capable de reconnaître tous les systèmes de fichiers sur lesquels il pourrait être amené à booter. Il est pour cette raison beaucoup plus gros que LILO.

Il fait partie du projet GNU.

Sommaire

[modifier] Fonctionnalités

  • Contrairement à LILO, GRUB n'a pas besoin d'être réinstallé pour mettre à jour sa configuration. GRUB prend en compte les modifications de son fichier de configuration automatiquement.
  • Au cas où le fichier de configuration serait incorrect, GRUB peut fournir un interpréteur de commandes pour permettre à l'utilisateur de charger un système d'exploitation manuellement.
  • GRUB est très portable : il permet de charger aussi bien des systèmes compatibles avec le multiboot que des systèmes non-compatibles avec cette fonction (comme Microsoft Windows). GRUB supporte en outre beaucoup de systèmes de fichiers comme ext3, VFAT ou NTFS. GRUB est également compatible avec le mode Logical Block Address (LBA).
  • GRUB peut être utilisé avec différentes interfaces. Beaucoup de distributions GNU/Linux utilisent le support graphique de GRUB pour afficher au démarrage de l'ordinateur un menu avec une image de fond, et parfois un support de la souris.
  • GRUB peut télécharger des images de systèmes d'exploitations depuis un réseau, et supporte donc les ordinateurs sans disques. GRUB peut donc décompresser ces images pour les charger ensuite.

[modifier] Fonctionnement

Quand l'ordinateur est allumé, le BIOS cherche un disque sur lequel booter, et transfère le contrôle au Master Boot Record (MBR) de ce disque, correspondant aux 512 premiers octets du disque.

Le MBR contient la Partie 1 de GRUB. A cause de la faible taille du MBR, cette partie se contente de charger la partie suivante de GRUB (qui elle peut se trouver n'importe où sur le disque). La Partie 1 peut directement charger la Partie 2, ou charger la Partie 1.5, qui elle se trouve dans les 30 kilooctets suivant le MBR. Cette Partie 1.5 charge ensuite la Partie 2.

Quand la Partie 2 est chargée, elle affiche une interface à l'utilisateur, et ce dernier peut choisir quel système d'exploitation charger. Habituellement, cette interface est un menu graphique, mais si ce dernier n'est pas disponible ou si l'utilisateur souhaite obtenir un plus grand contrôle, GRUB peut fournir son propre interpréteur de commandes et l'utilisateur peut taper ses paramètres de boot personnalisés. GRUB peut également charger un système d'exploitation automatiquement, après une période donnée.

Une fois le système choisi, GRUB le charge et lui transfère le contrôle de la machine.

[modifier] Installation

A l'inverse de LILO, GRUB n'a pas besoin d'être réinstallé dans le MBR à chaque modification de son fichier de configuration.

Dans un système GNU/Linux, la commande grub-install est uniquement utilisée pour installer la Partie 1 de GRUB dans le MBR ou dans une partition. Les fichiers de configuration de GRUB doivent se trouver sur une partition utilisable, et dans le cas contraire, la Partie 1 exécute l'interpréteur de commandes automatiquement.

Le nom et l'emplacement de ce fichier varient d'un système à un autre. Par exemple, dans la distribution Debian GNU/Linux, ce fichier est situé dans /boot/grub/menu.lst, alors que Fedora Core le place dans /boot/grub/grub.conf (ce dernier utilise un lien symbolique à l'emplacement /etc/grub.conf et qui pointe vers /boot/grub/grub.conf pour des raisons de compatibilité).

De plus, GRUB peut être installé sur un disque amovible, comme une disquette, un CD ou une clé USB pour charger un système qui ne pourrait booter depuis son propre disque.

[modifier] Développement

Le terme GRUB fait généralement référence à GRUB Legacy. Cette version continue de recevoir des patchs, mais plus aucune nouvelle fonction n'est ajoutée. Les développeurs de GRUB ont décidé de se concentrer sur GRUB 2 : une réécriture complète du programme pour le rendre plus sûr, plus propre, plus puissant et plus robuste.

[modifier] GNU GRUB 2

Véritable suite de GRUB, GNU GRUB 2 est appelée à devenir la nouvelle version utilisée. Les développeurs prévoient donc :

  • pouvoir scripter GRUB, avec des structures comme les boucles ou les conditions ;
  • une interface graphique ;
  • un système pour charger les modules à l'exécution, plutôt que d'alourdir la compilation ;
  • une portabilité accrue ;
  • le support des caractères non-ASCII.

(en) Liste complète des fonctionnalités

[modifier] Voir aussi

[modifier] Autres chargeurs d'amorçage

[modifier] Liens externes