Vous êtes sur la page 1sur 16

Thème : PRÉSENTATION DE GRUB

Membres du groupe :
COMPAORÉ Kaled Abdou Aziz
KIENOU Aimé
KOANDA Moustapha
KONKOBO Emmanuel
SANKARA Tarwend-Panga Abou Gaël

Professeur : Dr Ferdinand GUINKO

1
SOMMAIRE

INTRODUCTION ................................................................................................................ 3
I. PRÉSENTATION DE GRUB....................................................................................... 3
I.1 DÉFINITION ....................................................................................................... 3
I.2 HISTORIQUE................................................................................................... 3
II. LES VERSIONS DE GRUB ......................................................................................... 3
II.1 VERSION1 ou GRUB Legacy .............................................................................. 3
II.2 VERSION2 ....................................................................................................... 5
III. FONCTIONNALITÉ ET FONCTIONNEMENT ......................................................... 5
III.1 FONCTIONNEMENT .......................................................................................... 5
III.2 FONCTIONNALITÉS DE GRUB ....................................................................... 6
IV. CARACTÉRISTIQUES DE GRUB ............................................................................ 7
IV.1 SUPPORTS DE GRUB......................................................................................... 7
IV.2 AUTRES........................................................................................................... 8
V. INSTALLATION ET DÉMARRAGE DE GRUB............................................................ 9
V.1 INSTALLATION .................................................................................................. 9
V.2 DÉMARRAGE DE GRUB ................................................................................ 12
VI. RECOMMANDATION .......................................................................................... 13
CONCLUSION .................................................................................................................. 16

2
INTRODUCTION
Le chargeur (boot loader en Anglais) est le premier logiciel qui s'exécute quand un
ordinateur démarre. C'est lui qui charge et transfère le contrôle au logiciel noyau d'un système
d'exploitation (comme Linux ou GNU Mach). Le noyau, à son tour, initialise le reste du système
d'exploitation (ex. un système GNU). GNU/GRUB est un chargeur très puissant, qui peut démarrer
une grande variété de systèmes d'exploitation libres, ainsi que des systèmes d'exploitation
propriétaires avec la technique du Chain-loading. GRUB est conçu pour gérer la complexité du
démarrage d'un PC.

I. PRÉSENTATION DE GRUB

I.1 DÉFINITION

GNU GRUB (acronyme signifiant en anglais « GRand Unified Bootloader ») est un


programme d’amorçage de micro-ordinateur. Il s’exécute à la mise sous tension de l’ordinateur
après les séquences de contrôles internes et avant le système d’exploitation lui-même, puisque
son rôle est justement d’en organiser son chargement. Dans le cas de plusieurs systèmes installés
on parle de multi-amorçage. Il permet donc de choisir le système voulu au démarrage de
l’ordinateur.

I.2 HISTORIQUE

GRUB est né en 1995 quand Erich Boleyn essayait de démarrer le GNU/Hurd avec le
microkernel Mach 4 de l'Université de l'Utah (maintenant connu sous le nom de GNU Mach). Erich
et Brian Ford ont conçu la Spécification Multiboot (voir Top), car ils étaient déterminés à ne pas
augmenter le grand nombre de méthodes de démarrage d'un PC, toutes incompatibles entre
elles. Erich a alors commencé la modification du chargeur de FreeBSD pour lui faire comprendre le
format Multiboot. Il a rapidement réalisé qu'il lui serait beaucoup plus facile d'écrire son propre
chargeur à partir de zéro plutôt que de continuer à travailler sur le chargeur de FreeBSD. GRUB
était né. Erich a ajouté de nombreuses fonctions à GRUB, mais d'autres priorités l'ont empêché de
suivre les demandes du nombre croissant d'utilisateurs. En 1999, Gordon Matzigkeit et Yoshinori
K. Okuji ont adopté GRUB comme un projet GNU officiel, et ont ouvert son développement en
rendant les dernières sources disponibles via un accès CVS anonyme.

II. LES VERSIONS DE GRUB

II.1 VERSION1 ou GRUB Legacy

Première version de GRUB, GRUB Legacy 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, Apple®, MacOS®, etc.) et possède la capacité d’enchaîner vers

3
un autre amorceur pour les systèmes non compatibles avec la norme POSIX (comme Microsoft®,
Windows®).

À l’origine, ce programme s’appelait GNU/Grand Unified Boot, ou simplement GNU/GRUB.


Cependant le projet GRUB lui a donné un successeur : GRUB2. Pour bien distinguer les deux
logiciels, incompatibles entre eux, GNU/GRUB a été renommé GRUB Legacy.

GRUB Legacy est installé automatiquement avec Ubuntu 9.04 et versions antérieures lors
d’une installation classique pour ordinateur de type IBM pc-compatible et MacIntel.

 Pour éviter tout problème, il faut toujours installer GRUB sur la partition où vous faites
l’installation.

NB : Avec les cartes mères modernes, il est possible de changer l’ordre de boot des disques sans
changer leur jumpers. Ceci permet de simplifier grandement l’installation dans le cas où vous avez
un disque dur par OS : -installation de Windows sur un disque qui est déclaré premier dans l’ordre
de boot. Le loader écrit dans le MBR de ce disque-échange de l’ordre de disque, l’installation de
Linux sur le deuxième. Windows ne voit pas la différence. Si vous réinstallez Windows par la suite :
il suffit de changer l’ordre des deux disques avant l’opération, puis de réinstaller. Quand vous
remettrez le disque contenant Linux en premier dans l’ordre du boot, GRUB fonctionnera toujours
car Windows aura écrasé le MBR de l’autre disque.

4
II.2 VERSION2

Grand Unified Bootloader, version 2 (ou GRUB2) est la seconde version de GNU/GRUB.
C’est un logiciel permettant de charger un système d’exploitation. Il pourra amorcer lui-même des
systèmes compatibles avec la version POSIX (GNU/Linux, BSD, MacOS, etc.) ou enchaîner vers un
autre chargeur d’amorçage pour les autres systèmes. Plus qu’une continuité du projet GRUB
Legacy précédent, GRUB2 en est une réécriture complète. Il a pour but d’être un chargeur
d’amorçage plus modulaire et portable que son prédécesseur avec notamment une interface
graphique et une portabilité vers diverses architectures matérielles (BIOS, EFI, COREBOOT).

III. FONCTIONNALITÉ ET FONCTIONNEMENT

III.1 FONCTIONNEMENT

Quand l'ordinateur est allumé, le BIOS cherche le premier périphérique bootable


(habituellement le disque dur), charge le secteur d'amorçage ou Master Boot Record (MBR),
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 dynamiquement.

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,
correspondant aux 512 premiers octets de ce disque, puis transfère le contrôle à ce code.

5
Le MBR contient habituellement la partie 1 de GRUB, mais il peut aussi contenir un autre
Bootloader qui peut chaîner la partie 1 de GRUB depuis un autre secteur de boot, comme le début
+d'un autre disque ou une partition logique (de type DOS). À cause de la faible taille du MBR, la
partie 1 se contente de charger la partie suivante de GRUB (qui elle peut se trouver n'importe où
sur les 1024 premiers cylindres du disque). La partie 1 peut directement charger la partie 2, ou
charger la partie 1.5, qui se trouve dans les 30 kilooctets suivant le MBR. Cette partie 1.5 charge
ensuite la partie 2. La partie 1.5 peut contenir des pilotes pour pouvoir accéder à la partie 2.
Boot.img est rangé dans le MBR ou le secteur de démarrage de volume comme la partie 1,
toutefois, il peut charger un secteur depuis n'importe quelle adresse LBA48. Ceci charge le
premier secteur de core.img (généré depuis diskboot.img) qui est ensuite utilisé pour charger le
reste du fichier généré core.img. Le fichier core.img est normalement rangé au même
emplacement que la partie 1.5 avec les mêmes problèmes. Toutefois, il peut être déplacé dans un
système de fichiers ou une partition avec moins de problème que le déplacement ou l'omission de
la partie 1.5.
Une fois chargé le fichier core.img charge les fichiers de configurations et les autres
modules nécessaires.
Une fois que GRUB est chargé, il présente une interface qui permet à l'utilisateur de choisir
quel système d'exploitation démarrer. Ceci prend normalement la forme d'un menu graphique. Si
celui-ci n'est pas disponible, ou si l'utilisateur désire un contrôle direct, GRUB a sa propre invite de
commande. L'utilisateur peut alors préciser manuellement les paramètres de démarrage. GRUB
peut être réglé pour charger automatiquement un noyau précis après un délai d'attente défini par
l'utilisateur.
Une fois que les options de démarrage ont été sélectionnées, GRUB charge le noyau choisi
en mémoire et lui passe le contrôle. Sinon, GRUB peut passer le contrôle du démarrage à un autre
chargeur, utilisant le chargement en chaîne. C'est cette méthode qui est utilisée pour charger des
systèmes d'exploitation tels que Windows, qui ne supportent pas le multi-démarrage standard.
Dans ce cas, des copies des chargeurs des autres programmes de démarrage ont été faites. Au
lieu d'un noyau, l'autre système est chargé comme s'il avait été depuis le MBR. Ce peut être un
autre chargeur de démarrage, comme le menu de démarrage de Microsoft, permettant la
sélection du système d'exploitation.

III.2 FONCTIONNALITÉS DE GRUB

 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 prend en charge en outre beaucoup de systèmes de fichiers comme ext3, VFAT ou
NFTS.
 GRUB est également compatible avec le mode Local block addressing (LBA).

6
 GRUB peut être utilisé avec différentes interfaces. Plusieurs distributions GNU/Linux
utilisent la prise en charge graphique de GRUB pour afficher au démarrage de l'ordinateur
un menu avec une image de fond, et parfois une prise en charge de la souris.
 GRUB peut télécharger des images de systèmes d'exploitation depuis un réseau, ce qui
permet d'amorcer un système sur les ordinateurs sans disques. GRUB peut décompresser
ces images pour les charger ensuite.
 GRUB prend également en charge des systèmes d'exploitation non Linux via le
chargement en chaîne (Chain-loading) d'un autre Bootloader tel ceux de Windows, ou une
autre version de lui-même (coexistence entre GRUB Legacy (version 1) et Grub2).

IV. CARACTÉRISTIQUES DE GRUB

IV.1 SUPPORTS DE GRUB

 Support de nombreuses variantes du format a.out et du format ELF. Les tables de


 Support des noyaux non Multiboot
 Support d'un grand nombre de noyaux 32-bits libres auxquels il manque la compatibilité
 Support complet de la fonction Multiboot qui permet de charger plusieurs modules.
 Support d'un fichier de configuration lisible par l'homme qui prédéfinit les commandes de
démarrage. Vous pouvez aussi ouvrir un autre fichier de configuration dynamiquement ou
intégrer un fichier de configuration dans un fichier image de GRUB. La liste des
commandes (voir Commandes) est une extension de celles supportées en ligne de
commande. Un exemple de fichier de configuration est donné au Configuration.
 Support de plusieurs systèmes de fichiers
GRUB supporte plusieurs systèmes de fichiers de façon transparente, et une notation utile de
listes de blocs. Les systèmes de fichiers actuellement supportés sont : BSD FFS, DOS FAT16 et
FAT32, Minix fs, Linux ext2fs, ReiserFS, JFS, XFS et VSTa fs. Voir Système de fichiers, pour plus
d'informations.
 Support de la décompression automatique
GRUB peut décompresser des fichiers compressés avec la commande gzip. Cette fonction est
automatique et transparente pour l'utilisateur (toutes les fonctions utilisent le contenu
décompressé des fichiers). La compression réduit nettement la taille d'un fichier ainsi que le
temps de chargement, ce qui est particulièrement utile pour les disquettes. Il est concevable que
les modules d'un noyau puissent être chargés en étant compressés, c'est pourquoi une
commande spéciale pour charger les modules peut être utilisée afin d'éviter leur décompression.
 Support du mode Logical Block Address
Dans les accès traditionnels aux disques (appelé mode CHS), à cause d'un problème de
traduction de géométrie, le BIOS ne peut pas lire au-delà des 1024 premiers cylindres, la taille
accessible est donc limitée à 508 MO au minimum et 8 GO au maximum. GRUB ne peut pas
résoudre ce problème dans tous les cas puisqu'il n'existe pas d'interface standard utilisée sur

7
toutes les machines. Cependant, bon nombre d'entre elles possèdent une nouvelle interface, le
mode Logical Block Address (LBA). GRUB détecte et utilise automatiquement ce mode s'il est
disponible. Avec le mode LBA, GRUB peut accéder au disque en entier.
 Support du démarrage depuis un réseau
GRUB est, à l'origine, un chargeur basé sur disque mais il possède un support réseau. Vous pouvez
charger des images d'OS sur un réseau en utilisant le protocole TFTP.
 Support de terminaux distants
Pour les ordinateurs sans console, GRUB fournit un support de terminaux distants, ce qui permet
de le contrôler depuis un hôte distant. Seuls les terminaux série sont supportés pour le moment.

IV.2 AUTRES

 La première exigence pour GRUB est d'être compatible avec la Spécification Multiboot.
Les autres objectifs, listés approximativement par ordre d'importance, sont :
 Des fonctions fondamentales simples pour l'utilisateur final.
 Des fonctions riches pour les experts et les concepteurs de noyaux.
 Une compatibilité ascendante pour démarrer FreeBSD, NetBSD, OpenBSD et Linux. Les
noyaux propriétaires (comme DOS, Windows NT et OS/2) sont supportés par une fonction
de Chain-loading. À l'exception de modes de compatibilité spécifiques (Chain-loading et le
format piggyback de Linux), tous les noyaux seront démarrés pratiquement dans le même
état que dans la Spécification Multiboot. Seuls les noyaux chargés en mémoire à 1MO ou
au-delà sont actuellement supportés. Toute tentative de chargement en-dessous de cette
limite échouera et un message d'erreur signalera le problème. En plus des conditions
précédentes, GRUB dispose des fonctionnalités suivantes (notez que ces fonctions ne sont
pas toutes exigées par la Spécification Multiboot) :
 Reconnaissance de plusieurs formats d’exécutables
 Chargement de plusieurs modules
 Lecture d'un fichier de configuration
 Fournir une interface menue
Un menu listant les commandes de démarrage prédéfinies avec un délai d'attente
ajustable, est disponible. Il n'y a pas de limite fixe quant au nombre d'entrées, et actuellement, il
peut y en avoir jusqu'à plusieurs centaines.
 Posséder une interface en ligne de commande flexible
 Une ligne de commande vraiment flexible, accessible depuis le menu, permet d'éditer
n'importe quelle commande prédéfinie ou bien d'ajouter de nouvelles entrées. Si aucun
fichier de configuration n'est présent, GRUB affiche cette interface. La liste des
commandes (voir Commandes) est un sous-ensemble de celles supportées dans les fichiers
de configuration. Le comportement de la ligne de commandes est très proche de celui de

8
Bash (voir Command Line Editing), avec la touche <TAB> qui permet de compléter les
commandes, les noms de périphériques, de partitions, et de fichiers.
 Accès aux données sur n'importe quel disque installé
GRUB peut lire des données depuis n'importe quel lecteur de disquettes ou disque dur
reconnu par le BIOS, sans tenir compte de la partition racine qui a été spécifiée.
 Être indépendant des traductions de géométrie du disque
Contrairement à beaucoup d'autres chargeurs, le problème de traduction pour disque
particulier ne se pose pas avec GRUB. Un disque installé et utilisé avec un mode de traduction
peut être converti dans un autre mode sans effet sur la configuration de GRUB.
 Détection de toute la RAM installée
GRUB peut généralement détecter tout la RAM installée sur une machine compatible PC. Il
utilise une technique de recherche avancée du BIOS pour trouver toutes les parties de la mémoire.
Comme décrit dans la Spécification Multiboot (voir Top), GRUB fournit cette information aux
noyaux qui l'utilisent.

V. INSTALLATION ET DÉMARRAGE DE GRUB

V.1 INSTALLATION

D'abord, vous devez avoir installé GRUB correctement sur votre système depuis les
sources, ou depuis un package pour votre système.
Pour utiliser GRUB, vous devez l'installer sur votre disque. Il y a deux manières pour cela -
soit utiliser l'utilitaire grub-install, sur un OS de type Unix, soit utiliser le fichier Stage 2. Ils sont
tous deux assez similaires, mais l'utilitaire peut trouver un disque incorrect, donc mieux vaut être
prudent. Ainsi, si vous installez GRUB sur un OS de type Unix, assurez-vous d'avoir une disquette
de démarrage d'urgence, pour pouvoir toujours démarrer votre ordinateur si, pour une raison
quelconque, votre disque dur devenait inutilisable (indémarrable).
GRUB est accompagné d'images de démarrage, qui sont normalement installées dans le
répertoire /usr/share/grub/i386-pc. Vous devez copier les fichiers stage1, stage2, et *stage1_5 dans
le répertoire /boot/grub. Par la suite, nous appellerons répertoire des images le répertoire où les
images de GRUB sont installées, et répertoire de démarrage le répertoire où pourra GRUB les
trouver.
Créer une disquette de démarrage :
Installer GRUB nativement :
Installer GRUB avec grub-install :

 Créer une disquette de démarrage

9
Pour créer une disquette de démarrage de GRUB, vous devez prendre les fichiers stage1 et stage2
pour les copier sur respectivement les premiers et deuxièmes blocs de la disquette.
Attention : Cette procédure détruira toutes les données enregistrées sur la disquette.
Sur un système de type Unix, ceci est réalisé avec les commandes suivantes :
# cd /usr/share/grub/i386-pc
# dd if=stage1 of=/dev/fd0 bs=512 count=1
1+0 records in 1+0 records out # dd if=stage2 of=/dev/fd0 bs=512 seek=1
153+1 records in 153+1 records out #
Les noms des fichiers de périphériques peuvent être différents, consultez le manuel de votre OS.

 Installer GRUB nativement


Attention : L'installation de stage1 de cette manière écrasera le secteur de démarrage normal de
votre OS.
GRUB peut actuellement démarrer GNU Mach, Linux, FreeBSD, NetBSD et OpenBSD
directement, donc l'utiliser sur un secteur de démarrage ne devrait pas poser de problème. Mais il
est généralement préférable de faire une sauvegarde du secteur de démarrage de la partition où
vous voulez installer le stage1 de GRUB. Ce n'est pas aussi important si vous l'installez sur le
premier secteur d'un disque dur puisqu'il est facile de le réinitialiser (par exemple avec la
commande FDISK /MBR depuis DOS). Si vous décidez d'installer GRUB sur votre ordinateur, ce qui
est préférable, vous aurez besoin d'une disquette de démarrage de GRUB et de redémarrer votre
ordinateur avec. Sinon, voir Installer GRUB avec grub-install, pour plus de détails. À son
démarrage, GRUB affichera la ligne de commande. Définissez d'abord le disque racine vers le
répertoire de démarrage : grub> root (hd0,0). Si vous n'êtes pas sûr de la partition qui contient les
images, utilisez la commande find (voir find), comme ceci : grub> find /boot/grub/stage1 ; cette
commande recherchera le fichier /boot/grub/stage1 et affichera les disques qui contiennent ce
fichier. Dès que vous avez défini correctement la partition racine, entrez la commande setup :
grub> setup (hd0) ; cette commande installera GRUB sur le MBR du premier disque. Si vous voulez
installer GRUB sur le secteur de démarrage d'une partition au lieu du MBR, précisez la partition sur
laquelle vous voulez installer GRUB : grub> setup (hd0,0). Si vous installez GRUB sur une partition
ou un disque autre que le premier, vous devez lancer GRUB depuis un autre chargeur. Consultez le
manuel de votre chargeur pour savoir comment charger GRUB. Maintenant vous pouvez
démarrer GRUB sans disquette.

 Installer GRUB avec grub-install


Attention : Cette procédure est définitivement déconseillée parce qu'il y a de nombreuses
possibilités pour que votre ordinateur devienne indémarrable. Par exemple, la plupart des
systèmes d'exploitation ne donnent pas la correspondance entre les disques du BIOS et les
disques de l'OS, GRUB essaie de deviner cette correspondance. La procédure réussit dans la
plupart des cas, mais pas toujours. GRUB est donc accompagné d'un fichier de correspondances

10
appelé carte des périphériques, que vous devez corriger s'il est faux. Malheureusement, vous
devez appeler le programme grub-install (voir Invoquer grub-install) sous le compte du super-
utilisateur (root) si vous voulez installer GRUB sous un OS de type Unix. Il est très facile à utiliser.
Vous devez seulement passer un argument au programme qui lui indique où installer GRUB. Cet
argument peut être soit un fichier de périphérique, soit un disque ou une partition. Ainsi, cette
commande installera GRUB sur le MBR du premier disque IDE sous Linux :
# grub-install /dev/hda
Sous le GNU/Hurd, ceci a le même effet :
# grub-install /dev/hd0
S'il s'agit du premier disque du BIOS, cette commande est également équivalente aux deux
précédentes :
# grub-install '(hd0)'
Mais tous les exemples ci-dessus considèrent que les images de GRUB se trouvent dans le
répertoire racine. Si vous voulez que GRUB utilise les images dans un autre répertoire, vous devez
ajouter l'option --root-directory. Cette commande est typiquement utilisée pour créer une
disquette de démarrage avec un système de fichiers. Voici un exemple :
# mke2fs /dev/fd0
# mount -t ext2 /dev/fd0 /mnt
# grub-install --root-directory=/mnt '(fd0)'
# umount /mnt
Un autre exemple est le cas où vous avez une partition de démarrage montée dans /boot.
Puisque GRUB est un chargeur, il n'a pas du tout connaissance des points de montage. Vous devez
donc appeler grub-install comme ceci : # grub-install --root-directory=/boot /dev/hda
Comme expliqué précédemment, il est assez difficile de deviner les disques du BIOS
correctement sous un OS de type Unix. C'est pourquoi grub-install vous demandera de vérifier s'il
a pu correctement deviner les correspondances, après l'installation. Le format utilisé est défini
dans Table de correspondances. Soyez assez attentifs. Si la sortie est fausse, il est peu probable
que votre ordinateur puisse démarrer sans problème.
Notez que grub-install est en fait un simple script pour le Shell et le travail est effectué par
l'interpréteur GRUB. Vous pouvez lancer grub directement pour installer GRUB, sans passer par
grub-install. Cependant, ne le faites pas si vous ne connaissez pas bien le fonctionnement interne
de GRUB. Installer un chargeur sur un OS en marche peut être très dangereux.

11
V.2 DÉMARRAGE DE GRUB

GRUB peut charger les noyaux compatibles Multiboot de la même façon mais pour
certains systèmes d'exploitation libres, vous devez utiliser des combinaisons spécifiques.

 Méthodes générales : Manière générale de démarrer avec GRUB


 Notes spécifiques à certains OS : Notes sur certains systèmes d'exploitation

 Comment démarrer des systèmes ?


GRUB dispose de deux méthodes de démarrage distinctes. La première consiste à charger
un système d'exploitation directement, l'autre à lancer un autre amorceur qui chargera alors le
système d'exploitation. En général, la première méthode est préférable puisque vous n'avez pas
besoin d'installer ou de maintenir plusieurs gestionnaires et GRUB est assez flexible pour charger
un système depuis un disque ou une partition arbitraire. Cependant, la seconde est parfois
nécessaire, puisque GRUB ne supporte pas nativement tous les systèmes d'exploitation existants.
Charger un système directement :
Chainage :
Comment démarrer un OS directement avec GRUB
GRUB supporte nativement le format Multiboot (voir
Top). Pour rendre les choses plus pratiques, il prend également en charge Linux, FreeBSD, NetBSD
et OpenBSD. Si vous voulez démarrer d'autres systèmes d'exploitation, il faudra passer par le
chaînage d'amorceur (voir Chainage).
Généralement, GRUB peut amorcer n'importe quel OS compatible Multiboot en suivant les étapes
suivantes :

 Positionnez la partition racine de GRUB sur le disque où se trouvent les images de l'OS au
moyen de la commande root (voir root).
 Chargez l'image du noyau avec la commande kernel (voir kernel).
 Si vous avez besoin de modules, chargez-les avec la commande module (voir module) ou
modulenounzip (voir modulenounzip).
 Entrez la commande boot (voir boot).
Linux, FreeBSD, NetBSD et OpenBSD peuvent être démarrés d'une manière similaire. Vous
pouvez charger une image d'un noyau avec la commande kernel et ensuite entrer la commande
boot. Si le noyau réclame des paramètres, ajoutez-les simplement à la commande Kernel, après le
nom de fichier du noyau.
 Amorcer un autre chargeur pour démarrer un système non supporté

12
Si vous voulez démarrer un système d'exploitation non supporté (comme Windows 95),
chargez un autre gestionnaire d'amorçage. Normalement, le gestionnaire se trouve dans le
secteur de démarrage de la partition sur laquelle est installé le système d'exploitation.
 Définissez la partition racine de GRUB avec la commande rootnoverify (voir rootnoverify) :
Grub> rootnoverify (hd0,0)
 Positionnez le drapeau active de la partition avec
makeactive 5 (voir makeactive) :
grub> makeactive
 Chargez le gestionnaire d'amorçage avec la commande
chainloader (voir chainloader) : grub> chainloader +1
+1 indique que GRUB doit lire un secteur à partir du début de la partition. Pour une description
complète de cette syntaxe, voir Syntaxe des listes de blocs.
 Lancez la commande boot (voir boot).
Cependant, DOS et Windows ont des problèmes, ce qui peut vous obliger à utiliser des
instructions plus compliquées.

VI. RECOMMANDATION

Dans cette section, nous allons décrire certains problèmes des systèmes d'exploitation.
GNU/Hurd :
GNU/Linux :
FreeBSD :
NetBSD :
OpenBSD :
DOS/Windows :
SCO UnixWare :
GNU/Hurd : Puisque le GNU/Hurd est compatible Multiboot, il est facile de le démarrer ; il n'y a rien
de spécial en ce qui le concerne. Mais n'oubliez pas que vous devez préciser la partition racine au
noyau.
Positionnez la partition racine de GRUB sur la partition du GNU/Hurd. Une commande du
type find /boot/gnumach peut vous aider (voir find).
Chargez le noyau et le module, comme ceci : grub> kernel /boot/gnumach root=hd0s1
grub> module /boot/serverboot
Entrez la commande boot (voir boot).

13
GNU/Linux : Il est relativement facile d'amorcer GNU/Linux depuis GRUB, parce que le processus
ressemble à celui d'un OS compatible Multiboot.
Positionnez la partition racine de GRUB sur celle de GNU/Linux. La commande comme find
/vmlinuz peut vous aider (voir find).
Chargez le noyau : grub> kernel /vmlinuz root=/dev/hda1
Si vous avez besoin de passer des arguments au noyau, ajoutez-les simplement à la
commande. Par exemple, pour positionner l'option vga sur ext, faites-ceci : grub> kernel /vmlinuz
root=/dev/hda1 vga=ext

 Si vous utilisez un initrd, exécutez la commande


initrd après kernel : grub> initrd /initrd

 Enfin, lancez la commande boot.


Attention : Si vous utilisez un initrd et que vous passez l'option mem= au noyau pour lui faire
utiliser une taille de mémoire inférieure à la taille réelle, vous devrez également spécifier la même
taille à GRUB. Pour cela, utilisez la commande uppermem avant de charger le noyau. GRUB peut
charger le noyau directement, au format ELF ou a.out. Mais ceci n'est pas recommandé, puisque
l'interface de démarrage de FreeBSD change parfois considérablement, donc GRUB ne peut pas
vous garantir qu'il passe correctement les paramètres au noyau. Ainsi, nous vous recommandons
d'amorcer à la place le chargeur très flexible /boot/loader. Regardez cet exemple :
grub> root (hd0,a)
grub> kernel /boot/loader
grub> boot
NetBSD : GRUB peut charger NetBSD au format a.out et ELF directement, suivez ces étapes.
Définissez la partition racine de GRUB avec root.
Chargez le noyau avec kernel (voir kernel). Vous devez ajouter l'horrible option --
type=netbsd si vous voulez charger un noyau ELF, comme ceci : grub> kernel --type=netbsd
/netbsd-elf
Lancez boot.
Pour le moment, GRUB ne vous permet pas de passer des paramètres au noyau, donc il
peut être préférable d'utiliser le chaînage d'amorceur.
OpenBSD : Le processus de démarrage est exactement le même que pour NetBSD.
DOS/Windows : GRUB ne peut pas démarrer DOS ou Windows directement, vous devez donc
passer par le chain-loading (voir Chainage). Cependant, leurs chargeurs comportent de graves
problèmes qui font que leur chaînage peut ne pas suffire. Pour dépasser ces problèmes, GRUB
vous fournit deux fonctions utiles. Si vous avez installé DOS (ou Windows) sur un disque qui n'est
pas le premier, vous devez utiliser la technique d'échange de disques, parce que cet OS ne peut

14
être démarré que sur le premier disque. Le problème est contourné avec la commande map,
comme ceci :
grub> map (hd0) (hd1)
grub> map (hd1) (hd0)
Ceci échange virtuellement les premiers et seconds disques durs.
Attention : Cela ne fonctionne que si DOS (ou Windows) utilise le BIOS pour accéder aux disques
échangés. Si cet OS utilise un pilote spécial pour les disques, il est probable que cela ne marche
pas.
Un autre problème se pose si vous avez installé plus d'une copie de DOS/Windows sur un
disque, parce qu'ils peuvent être dérangés par l'existence de plusieurs partitions primaires pour
DOS/Windows. Vous devriez certainement éviter ce genre de configuration, mais il existe une
solution si vous décidez d'agir ainsi. Utilisez la technique de masquage/démasquage des
partitions.
Si GRUB masque une partition DOS/Windows (voir hide), DOS/Windows ignore la partition.
Si GRUB démasque une partition DOS/Windows, (voir unhide), il détecte la partition. Ainsi, si vous
avez installé DOS (ou Windows) sur la première et la deuxième partition du premier disque dur, et
que vous voulez démarrer la copie sur la première partition, faites comme ceci :
grub> unhide (hd0,0)
grub> hide (hd0,1)
grub> rootnoverify (hd0,0)
grub> chainloader +1
grub> makeactive
grub> boot
SCO UnixWare : Il est connu que la signature du chargeur de SCO UnixWare est mauvaise, donc
vous devrez passer l'option --force à la commande chainloader (voir
chainloader), comme ceci :
grub> rootnoverify (hd1,0)
grub> chainloader --force +1
grub> makeactive
grub> boot
Quelle orientation prendra GRUB ?
Voici quelques idées de ce qui pourrait se passer dans le futur :
 Support du chargement dynamique.

15
 Ajout d'une gestion réelle de la mémoire.
 Ajout d'un réel langage de script.
 Support de l'internationalisation.
 Support d'autres architectures que i386-pc.

CONCLUSION
En définitive Grub est un chargeur de systèmes très portable et offrant diverses
fonctionnalités. Il respecte parfaitement l’esprit GNU, très accessible mais en même temps
complexe pour les connaisseurs. Sa persévérance tire d’évolution s’annonce prometteuse au vu
de la popularité croissante de Gnu/Linux.

16

Vous aimerez peut-être aussi