Vous êtes sur la page 1sur 28

Fedora-Fr - Communauté francophone

Fedora - Linux
Portail de Fedora-Fr : la communauté francophone autour de la distribution Linux Fedora

Chercher

dans Documentation

Chercher

Accueil
Forums
Documentation
Planet
Association
Boutique

GRUB : Les bases pour Fedora


De Wiki Fedora-Fr.
Par : HerveRiboulot
Avec l'aimable contribution de : Kiki, Yodo, Marcet, Remi Collet, Mat, Maxime Carron

Sommaire
1 Introduction
2 Préalables
2.1 Le lancement d'un système, de type « PC »
2.2 Les fonctions de GRUB
2.3 La logique de fonctionnement de GRUB
2.3.1 Eléments généraux
2.3.2 Quelques précisions
2.3.3 Quelques précisions: compléments pour la cohabitation de
plusieurs distributions
2.4 Les futures évolutions de GRUB (GRUB 2)
2.5 GRUB et LVM (pour les experts)
3 Paramétrage de GRUB
3.1 À l'installation: cas général
3.1.1 dans /boot
3.1.2 dans /boot/grub
Lancement en mode menu
3.2 Lancement en mode menu
3.2.1 Les conventions de nommage des disques et disquettes
3.2.2 Le fichier grub.conf
3.2.3 Augmenter la résolution des consoles tty
3.2.4 Commandes complémentaires du fichier grub.conf
3.2.5 Spécificités de certaines entrées Windows dans grub.conf
4 Utilisation avancée de GRUB
4.1 Paramétrer le clavier en AZERTY
4.2 Mode interactif
4.3 Mode ligne de commandes : au lancement de GRUB
4.4 Mode ligne de commandes : sous Linux
4.5 Utilisation avancée du mode ligne de commandes
4.5.1 Utilisation de root
4.5.2 Utilisation de setup
4.5.3 Utiliser root et setup pour certaines installations
4.5.4 Utiliser root et setup pour faire cohabiter plusieurs distributions
4.5.4.1 Le schéma de base
4.5.4.2 Cas pratique
4.6 grub-install
5 État des commandes et codes d'erreur
5.1 Commandes réservées au menu
5.2 Commandes utilisables en menu ou ligne de commandes
5.3 État des erreurs signalées par GRUB
5.4 Quelques moyens de corriger les erreurs
5.4.1 Error 17: Cannot mount selected partition
5.4.2 Lancement de Windows : Starting up... GRUB loading stage2
5.4.3 grubloading, please wait error 21
5.4.4 error 15: File not found

1 Introduction
GRUB (GRand Unified Bootloader) fait l'objet de nombreuses questions. Ce tutoriel
propose une présentation générale et quelques élements pour permettre une
personnalisation rapide du lancement de Fedora ou d'autres systèmes. Il s'appuie très
largement sur les documents de référence suivants :

édition anglaise (V 0.97) du manuel Grub[1], également traduit en français[2] (V


0.92), projet GNU. Un historique du projet y figure ;
« Linux en concentré », éditions O'Reilly, par Ellen Siever, Stephen Figgins et Aaron
Weber, traduction française 2003, correspondant à la 4ème édition orginale (en
anglais) ;
« Grub-Howto » de Thierry Laronde[3] ;
Il vient en complément du tutoriel Dual boot Windows XP - Fedora ;
Le site de référence du projet est : http://www.gnu.org/software/grub ;
On citera par ailleurs le tutorial Grub de la communauté Ubuntu : http://doc.ubuntu-
fr.org/grub . Attention cependant, le tutoriel présente des commandes propres à
Debian (update-grub) et qui ne sont pas reprises dans Fedora (update-grub
interprète des directives qui sont directement portées dans le fichier de
configuration et simplement préfixées d'un caractère '#'; pour Fedora, ce '#' préfixe
un commentaire;
En l'état, il existe deux versions de Grub : une version « legacy » (historique)
correspondant aux versions 0.9X et une version Grub 2, en développement, portée
par GNU. Le présent document traite de la version Grub legacy.

Conventions d'écriture
Les parties en caractères italiques sont des compléments qui peuvent être
ignorés en première lecture.

2 Préalables
2.1 Le lancement d'un système, de type « PC »
Le tutoriel concernant le dual boot a décrit le lancement d'un système.

Le lancement d'un système obéit à une séquence générale simple :

1. la mise sous tension de l'ordinateur active le BIOS qui assure un ensemble de


contrôles (mémoire, périphériques ...) et prépare ainsi l'environnement matériel ;
2. le BIOS active alors une courte séquence de codes, dite MBR (Master Boot Record),
logée sur 512 octets en un endroit précis et normalisé du premier disque actif ;
3. le MBR amorce alors un lanceur (boot loader dans la terminologie courante), NTLDR
pour Windows XP, grub ou lilo pour Linux. Par défaut, Grub est utilisé par Fedora
(lilo pour être installé en substitution à grub) ;
4. le lanceur crée un environnement minimal (initialisation clavier, écran, périphériques
dont disque(s) et lecteur de disquettes, mémoire ...) pour afficher la liste des
systèmes d'exploitation, parmi lesquels l'utilisateur choisit celui qu'il lancera" ;
5. le système d'exploitation est alors lancé (pour Linux, initrd se met en oeuvre et les
modules sont chargés pour permettre l'initialisation de l'environnement logiciel et
matériel).

2.2 Les fonctions de GRUB


GRUB est un lanceur (bootloader en anglais) qui, après activation par le BIOS, va
amorcer un système d'exploitation.

GRUB peut lancer différents systèmes d'exploitation (Gnu/Linux, Gnu/Hurd, FreeBSD,


NetBSD, OpenBSD, OS2, famille des systèmes Windows ...).

L'amorce est toutefois différenciée selon les systèmes : GRUB lance ainsi directement les
systèmes ouverts (Linux, Hurd ...), mais pour les systèmes propriétaires, il active le
lanceur de ces systèmes, selon la logique dite du « chainloading ».

GRUB présente les fonctions générales suivantes :

prise en charge des architectures i386 « type PC » ;


démarrage depuis une variété de supports : disquette, disque dur reconnu par le
BIOS, en s'affranchissant de nombreux problèmes de représentation des disques ,
réseau. GRUB supporte le mode Logical Block Address (LBA) qui permet de
s'affranchir des limites inhérentes au BIOS (les disques de grandes tailles ne peuvent
être gérés directement par le BIOS) ;
lancement de divers noyaux (Linux, ...), support de plusieurs formats d'exécutables
lancement de divers noyaux (Linux, ...), support de plusieurs formats d'exécutables
(notamment pour le chainloading) et support de plusieurs formats de fichiers
(ext2fs, ext3fs, dos fat16, dosfat32, ....) et modules ;
deux modes principaux de fonctionnement : le mode menu et le mode ligne de
commandes. Le mode menu fournit une interface utilisateur pour le choix du
système à lancer (avec lecture d'un fichier de configuration qui fixe les commandes
de démarrage), et permet par ailleurs d'accéder au mode ligne de commandes et à
une variante du mode menu: le mode interactif.

Modes Menu et Ligne de commande


En mode menu, l'utilisateur exerce ses choix en pointant une ligne à l'aide des
flèches de déplacement et en validant par la touche entrée; en mode ligne de
commandes, l'utilisateur doit saisir les commandes expressément.

2.3 La logique de fonctionnement de GRUB

2.3.1 Eléments généraux

GRUB est chargé par le MBR (Master Boot Record). Il s'initialise sous la forme d'un noyau,
qui se loge en mémoire et réalise la détection des éléments majeurs de l'environnement de
la machine : mémoire, disques, clavier, écran, ligne série et réseau éventuellement.

Pour réaliser le démarrage d'un noyau ou d'un gestionnaire d'amorçage tiers, GRUB
utilise des fichiers exécutables appelés stage1, stage1_5 et stage2.

Stage1 correspond à un fichier qui peut se loger soit dans le MBR, soit dans le
secteur de démarrage d'une partition, ou d'un du disque. Les choix par défaut de
Fedora conduisent à utiliser Grub: le MBR correspond alors au Stage1 de Grub ;
Stage1_5 est lancé par Stage 1 et prend en charge une gestion minimale de fichiers.
Différents systèmes de fichiers sont supportés qui correspondent chacun à une
version spécifique de Stage1_5 : reiserfs_stage1_5, vstafs_stage1_5, e2fs_stage1_5,
iso9660_stage1_5, xfs_stage1_5, fat_stage1_5, jfs_stage1_5, ffs_stage1_5,
minix_stage1_5, ufs2_stage1_5. Stage1_5, à son tour, lance Stage2.

2.3.2 Quelques précisions

Les espaces de stockage des informations (disques durs, disquettes ...) font l'objet d'un
formatage : ils sont ainsi préparés pour recevoir des données, selon une organisation
physique spécifique.

Un système de fichiers :

décrit l'organisation logique des données (regroupement en fichiers soit des


ensembles structurés de données, possédant des propriétés communes telles
qu'un nom, des dates d'événement — création, dernière modification... — des
acteurs d'appartenance &mdash utilisateur, groupe... &mdash des modalités
d'accès — lecture, écriture... &mdash organisation des fichiers, en arborescence par
exemple) ;
assure la correspondance entre l'organisation logique et l'organisation physique
pour permettre l'écriture de fichiers sur un support physique et la lecture de ces
pour permettre l'écriture de fichiers sur un support physique et la lecture de ces
fichiers depuis ce support.

Stage1_5 prend en charge a minima différents systèmes de fichiers et permet ainsi à


Stage2 :

de lire des fichiers de configuration (grub.conf par exemple) pour afficher un menu ;
de lire les noyaux des systèmes à lancer et leurs paramètres utiles pour les charger
en mémoire et engager leur lancement.

Le support des formats ext2fs, ext3fs ou Reiserfs offre ainsi à Grub la possibilité
d'accéder directement aux fichiers permettant le lancement des systèmes. Grub peut
ainsi lire les fichiers « noyaux » et « paramètres » dans des partitions Linux. Ces fichiers
peuvent être directement manipulés en utilisant leurs noms (voir 2.2.2).

Stage2 est le noyau de Grub ; il permet d'afficher un menu, de sélectionner un choix


ou d'afficher une ligne de commandes. Les paramètres d'initialisation et de gestion
du menu sont fixés par le fichier grub.conf (voir plus bas). Stage2 lance le système
choisi.

L'amorçage est réalisé comme suit (on simplifiera en ne retenant que Linux et les
systèmes Windows) :

1. la séquence Stage1 -> Stage1_5 -> Stage2 est déroulée. En Stage2, le noyau Grub
est chargé ;
2. lancement du mode menu ou ligne de commandes. En mode menu (ou interactif),
les commandes sont lues dans un fichier spécifique. En mode ligne de commandes,
elles sont saisies par l'utilisateur au sein d'un shell minimal (le shell prend les
commandes saisies ligne à ligne et les soumet au noyau pour action). Il est possible,
en mode menu, de modifier les commandes présentées par le fichier de
configuration, avant de les faire exécuter. Ce mode est dit « interactif » ;
3. Linux (ou Gnu/Hurd, FreeBSD, NetBSD, OpenBSD) ou OS2 (ou Windows ou
Solaris) ;
1. cas de Linux (ou Gnu/Hurd, FreeBSD, NetBSD, OpenBSD) :
1. identification par Grub de la partition sur laquelle le noyau (kernel) est
stocké (directive root -> voir plus loin) ;
2. accès au système de fichiers et lecture des fichiers nécessaires au
lancement : chargement du noyau (commande kernel) et chargement
éventuel de modules (commande module) ;
2. cas d'OS2, systèmes Windows ou Solaris :
1. identification de la partition racine (commande rootnoverify) ;
2. activation de cette partition (commande makeactive) ;
3. lancement du gestionnaire d'amorçage (commande chainloader).

2.3.3 Quelques précisions: compléments pour la cohabitation de plusieurs


distributions

Cette section intéressera uniquement les lecteurs qui souhaitent faire cohabiter plusieurs
distributions Linux (ou des distributions Linux et des systèmes Unix, OpenSolaris ou
*BSD). Elle sera utile pour la compréhension du paragraphe décrivant une solution pour la
cohabitation de plusieurs systèmes.

Comme indiqué précédemment, la séquence de fonctionnement de Grub est toujours:


Stage1 -> Stage1_5 -> Stage2 .
Stage1 -> Stage1_5 -> Stage2 .

Par défaut, lors des procédures d'installation des distributions Linux dont Fedora, Stage1
est installé sur le MBR (Master Boot Record) du premier disque actif (soit le disque qui
s'amorce au démarrage). Le MBR est le secteur 0 de la piste 0.

Mais il est possible d'installer Stage1 sur d'autres parties de disques:

1. le MBR d'autres disques (si le système en comprend plusieurs, évidemment!),


2. sur une partition de l'un des disques, car chaque partition dispose d'un Boot Sector
adapté.

L'amorçage sera toujours réalisé à l'appui du MBR du premier disque actif et de lui seul.
Ce MBR comprendra un Stage1 et un seul. Le Stage1 est paramétré pour dérouler un
processus qui lancera les Stage1_5 puis Stage2 relatifs à ce Stage1. En d'autres termes,
si plusieurs Stage1 sont installés (l'un sur le MBR du disque actif, les autres sur d'autres
MBR ou Boot Sectors), seul le Stage1 du MBR du disque actif puis ses Stage1_5 et Stage2
seront activés.

L'astuce décrite plus bas consiste en ce schéma:

1. activation de Grub: lancement du Stage1 résidant sur le MBR du premier disque


actif, puis Stage1_5 et Stage2
2. depuis Stage2, lancement du Stage1 d'un autre Grub résidant sur un autre MBR ou
un Boot Sector (l'astuce choisi d'utiliser cette seconde solution)
3. depuis ce nouveau Stage1, lancement de la séquence Stage1_5 puis Stage2 pour ce
'nouveau' Grub.

2.4 Les futures évolutions de GRUB (GRUB 2)


GRUB 2, réécriture complète de GRUB, se propose les objectifs suivants[4] :

un noyau plus développé (qui intègre les fonctions de Stage1_5) et pouvant prendre
en charge un plus large variétés de modules pour mieux s'adapter à l'environnement
matériel (exemple: prise en charge de clés USB...) ;
une meilleure gestion de la mémoire ;
un cadre de développement plus orienté objet pour mieux séparer les éléments
concernant la gestion des systèmes de fichiers, les périphériques, les drivers, les
commandes, les chargeurs de fichiers... et favoriser le travail coopératif ;
un meilleur support d'internationalisation ;
une recherche de la plus grande portabilité et interopérabilité (pour aider d'autres
projets).

2.5 GRUB et LVM (pour les experts)


Le Howto LVM (traduit en français[5]), indique: « Note : La partition de démarrage /boot
n'est pas incluse dans le LV car les chargeurs de démarrage ne gèrent pas encore les
volumes LVM. Il est possible que le démarrage sur une partition LVM fonctionne, mais
vous risquez de vous retrouvez avec un système non amorçable ».

A ce jour, Fedora à l'installation, tout en initialisant LVM2 par défaut, ne créent pas de PV
(Physical Volume) pour /boot.
3 Paramétrage de GRUB
3.1 À l'installation: cas général
On supposera que lors de l'installation, Grub a été choisi comme lanceur. Le fichier Stage1
pourra dès lors avoir été installé sur le secteur du MBR (512 octets), ou sur n'importe
quelle partition.

Le démarrage sera pleinement automatisé si le choix du MBR a été retenu. Seul ce cas
sera décrit.

L'installation de Fedora aboutit au déploiement des éléments cruciaux du démarrage de


Grub sur la partition /boot. Ces éléments sont constitués de :

3.1.1 dans /boot

Le (les) noyaux Linux installé(s) et son environnement (un exemple) :

config-2.6.10-1.770_FC3 (des paramètres de système)


System.map-2.6.10-1.770_FC3 (l'image du système)
initrd-2.6.10-1.770_FC3.img (initrd qui lance l'ensemble des modules)
vmlinuz-2.6.10-1.770_FC3 (le noyau proprement dit)

3.1.2 dans /boot/grub

stage1 (voir plus haut -> l'amorceur de Grub)


device.map (l'image des périphériques dont grub aura besoin)
reiserfs_stage1_5 (Stage 1_5 système de fichiers reiserfs)
vstafs_stage1_5(Stage 1_5 système de fichiers vstafs)
e2fs_stage1_5 (Stage 1_5 système de fichiers e2fs)
iso9660_stage1_5
xfs_stage1_5
fat_stage1_5
jfs_stage1_5
ffs_stage1_5
minix_stage1_5
ufs2_stage1_5
stage2
splash.xpm.gz (l'image qui sera affichée au menu grub, en version gunzippée; grub sait dézziper)
grub.conf (le fichier de commandes et de paramètres de Grub, qui est exécuté en mode menu ou interactif
menu.lst (un lien vers grub.conf)

Le fichier device.map décrit les périphériques reconnus par Grub ; il met en


correspondance les lecteurs disques et disquettes reconnus par le BIOS et les
périphériques pris en charge par Grub, selon les conventions de nommage de Grub (voir
2.2.1).

Exemple :

# this device map was generated by anaconda


(fd0) /dev/fd0
(hd0) /dev/hda
(hd1) /dev/hdb
On pourra confronter le contenu de ce fichier avec le résultat de la commande fdisk (à
passer dans une console avec les droits root) et ainsi vérifier que tous les disques durs
sont correctement reconnus et pris en charge :

# /sbin/fdisk -l

Disque /dev/hda: 20.4 Go, 20416757760 octets


16 têtes, 63 secteurs/piste, 39560 cylindres
Unités = cylindres de 1008 * 512 = 516096 octets

Périphérique Boot Start End Blocks Id System


/dev/hda1 * 2 22 10584 be Amorce Solaris
/dev/hda2 23 39560 19927152 bf Inconnu

Disque /dev/hdb: 20.0 Go, 20020396032 octets


255 têtes, 63 secteurs/piste, 2434 cylindres
Unités = cylindres de 16065 * 512 = 8225280 octets

Périphérique Boot Start End Blocks Id System

/dev/hdb1 * 1 13 104391 83 Linux


/dev/hdb2 14 2434 19446682+ 83 Linux

Dans le cas d'espèce, le système comporte deux disques IDE (hda et hdb), supportant des
partitions Solaris (hda) et Linux (hdb). hdb comprend deux partitions (dev/hdb1 et dev/hdb2).
La commande mount permet d'identifier le point de montage de /boot :

# mount
...
/dev/hdb1 on /boot type ext3 (rw)

/boot est monté sur la partition hdb1.

On constate ainsi que toutes les partitions ont été correctement identifiées par Grub.

Le fichier grub.conf a été constitué à partir de l'analyse réalisée l'installateur de Fedora :


anaconda. Il porte donc, si la reconnaissance a pu être menée à bien, les paramètres
généraux de tout dual boot.

3.2 Lancement en mode menu

3.2.1 Les conventions de nommage des disques et disquettes

Grub, comme indiqué précédemment, ne distingue pas l'IDE du SCSI (ou SATA), et
identifie les disques selon la séquence présentée par le BIOS (plus précisément : Grub
s'appuie sur les interruptions du BIOS et ne peut donc pas identifier séparément IDE et
SCSI). Grub dispose de sa propre convention de nommage reposant sur les principes
suivants :

Grub identifie les disques et lecteurs de disquettes selon l'ordre de présentation par
le BIOS ;
il leur affecte un numéro dans une séquence commençant par 0 ;
le premier disque dur /dev/hda ou /dev/sda est ainsi désigné comme (hd0), le second
le premier disque dur /dev/hda ou /dev/sda est ainsi désigné comme (hd0), le second
disque dur, comme (hd1) et ainsi de suite. Le premier lecteur de disquettes est
identifié comme (fd0). L'utilisation des parenthèses est réservée à la désignation des
unités de données ((hd0), (fd0)) ou partitions (voir plus bas) ; les commandes ne
sont jamais entourées de parenthèses.
Grub n'identifie pas les lecteurs de CD comme tels (pas de device (cdX)). Il existe
cependant une méthode de démarrage de Grub depuis un CD bootable (voir :
making a GRUB bootable CD Rom).
Grub désigne les partitions des disques selon une logique identique: la première
partition du premier disque est ainsi désignée comme (hd0,0), la seconde comme
(hd0,1). Le nommage a ici recours aux parenthèses.
GRUB s'appuie sur la convention décrite précédemment pour désigner les fichiers.
Un fichier est ainsi nommé à partir de la désignation de son périphérique de support
et de son chemin absolu. Ainsi, si /boot est monté sur /dev/hda1 (hd0,0), et que le
fichier se nomme /boot/grub/grub.conf, le nommage pour GRUB sera :
(hd0,0)/boot/grub/grub.conf. On rapelera qu'il ne peut y avoir de partition sur une
disquette.

Remarques
Une autre notation est possible, dite « par liste des blocs ». On désigne le
périphérique, la partition concernée et les différents blocs de stockage du
fichier, sur cette partition selon la convention : bloc de départ + nombre de
blocs, bloc de départ + nombre de bloc... (autant de séquences que de blocs
contigus différents). La taille des blocs est fonction du formatage du support
de stockage. Le Grub-Howto donne un exemple :

utilisation du nom du fichier, vmlinuz est implanté sur la première partition


du second disque dur : (hd1,0)/vmlinuz
utilisation de la notation par blocs, le fichier vmlinuz (qui n'est pas nommé)
est stocké sur la première partition du second disque dur, dans deux
groupes de blocs ; le premier comprend 96 blocs et commence au bloc
1322144 et le second présente 1227 blocs et commence au bloc
1322248 : (hd1,0)1322144 +96,1322248 +1227.

La notation « par liste de blocs » est utilisée dans le cadre du chainloading (voir
plus bas).

3.2.2 Le fichier grub.conf

Le fichier porte l'ensemble des paramètres et commandes que Grub va exécuter pour
amorcer un système, à partir du menu.

Un exemple servira à introduire les principaux paramètres :

# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that

# all kernel and initrd paths are relative to /, eg.


# root (hd0,1)
# kernel /boot/vmlinuz-version ro root=/dev/sda2
# initrd /boot/initrd-version.img
#boot=/dev/sda
default=1
timeout=5
timeout=5
splashimage=(hd1,0)/grub/splash.xpm.gz

hiddenmenu
title Windows
rootnoverify (hd0,0)
makeactive
chainloader +1
title Fedora Core (2.6.10-1.770_FC3)
root (hd1,0)
kernel /vmlinuz-2.6.10-1.770_FC3 ro root=/dev/VolGroup00/LogVol00 acpi=off quiet

initrd /initrd-2.6.10-1.770_FC3.img

Les lignes commençant par « # » ne sont pas interprétées ; elles servent ainsi de
commentaires.

default=0

Les choix dans le menu correspondent à des systèmes pouvant être lancés. Chaque
choix, correspondant à une section dans le fichier grub.conf, commence par une ligne
title. Dans l'exemple, deux entrées sont décrites: Windows et Linux.

Les entrées sont présentées dans le fichier grub.conf dans un ordre d'apparition libre (il
n'y a donc pas de préséance entre systèmes !). La première entrée, dans l'ordre
séquentiel de présentation du fichier, est identifiée comme 0, la seconde comme 1 et ainsi
de suite. La variable default indique l'entrée qui doit être activée par défaut. Ici, il s'agit de
Fedora Core (2.6.10-1.770_FC3).

Directive fallback
La directive fallback peut être introduite en complément de default. Elle
désigne l'entrée qui sera activée si l'entrée désignée par défaut ne peut pas être
lancée. Exemple: fallback=1

timeout=5

Une temporisation est activée lors du lancement du menu. Au-delà du délai indiqué en
secondes et si aucune touche n'est pressée, le système désigné par défaut est amorcé
automatiquement.

splashimage=(hd0,1)/grub/splash.xpm.gz

Une image peut être utilisée en fond d'écran. Le fichier se présente en un format
spécifique (xpm soit X pixmap, gzippé, selon une palette de 14 couleurs en résolution
640*480. Le chemin est indiqué selon le format interne à Grub. Un tutorial s'attache aux
images de fond de Grub (création, modification) : GRUB : Modifier l'image de fond
(splashscreen). Voir par ailleurs http://ruslug.rutgers.edu/~mcgrof/grub-images/

hiddenmenu

La présence de cette commande conduit Grub à masquer le menu complet (ensemble


des entrées décrites dans le grub.conf) ; seule l'entrée correspondant au système à
lancer par défaut est ainsi présentée pendant la durée de la temporisation.
lancer par défaut est ainsi présentée pendant la durée de la temporisation.

title XXXX

Exemple : title Fedora Core (2.6.10-1.770_FC3)


La directive title ouvre une section qui décrit une entrée présentée dans le menu et au-
delà, déroule les instructions pour l'amorçage d'un système. La section commence par
title et s'achève au début d'une autre section ou à la fin du fichier.

Le texte figurant au regard de la directive est le texte qui sera affiché dans le menu, il
n'est pas interprété comme une commande.

La section comprend toutes les commandes utiles pour l'amorçage d'un système et d'un
seul.

root (hd1,0)

root désigne le système de fichiers qui doit être utilisé par Stage2 pour l'accès au noyau
à lancer et aux paramètres utiles.

La racine, pour l'entrée décrite (ici Fedora Core ( 2.6.10-1.770_FC3)) se trouve en


/dev/hdb1 (voir l'exemple pris).

kernel /vmlinuz-2.6.10-1.770_FC3 ro root=/dev/VolGroup00/LogVol00 acpi=off quiet

kernel désigne le noyau qui doit être lancé (on voit d'ailleurs ici que Grub sait
directement lancer un noyau Linux). La suite de la ligne désigne le noyau lui-même, à
partir du point de référence donné par la directive root et les paramètres de lancement.

Le point de référence, dans l'exemple, est donc /dev/hdb1, partition qui supporte /boot. Le
noyau sera donc recherché dans /boot. Son nom est vmlinuz-2.6.10-1.770_FC3.

Les éléments qui suivent sont les paramètres de lancement du noyau (ro
root=/dev/VolGroup00/LogVol00 -> le disque est monté en LVM et on positionne / ; on
notera la clause acpi=off qui évite le support ACPI).

Clauses rhgb ou acpi=on


les clauses rhgb ou acpi=on peuvent soulever quelques problèmes et
notamment des blocages au démarrage. On pourra supprimer la clause rhgb
sans difficulté : en ce cas, l'habillage graphique des différents messages qui
apparaissent au lancement cèdera la place au froid affichage sur fond d'écran
noir... De même, on pourra supprimer le support acpi par la clause acpi=off
en cas de problème dans la gestion avancée de l'énergie.

initrd /initrd-2.6.10-1.770_FC3.img

Le fichier initrd est lié au noyau sélectionné. Il est désigné à partir du point de référence
donné par la directive root. Comme précédemment, il s'agira de /dev/hdb1. initrd, pour
les puristes, définit le disque virtuel initial (à partir duquel seront montées les différentes
partitions et systèmes de fichiers).
title Windows

La section sera désignée comme Windows.

rootnoverify (hd0,0)

rootnoverify fonctionne comme root mais ne tente pas de monter la partition désignée,
cette commande est utilisée pour traiter des partitions que GRUB ne sait pas lire (voir les
remarques concernant Stage 1_5).

makeactive

makeactive désigne le point de référence pour Grub, qui sera alors une partition active
du disque racine. Cette commande ne doit être utilisée que pour les partitions primaires
(sur lesquelles Windows s'installe!).

chainloader +1

chainloader charge un fichier comme <<chargeur secondaire. >>Dans le cas de


Windows, il va ainsi lancer le chargeur de Windows. Le +1 signifie que chainloader va lire
des blocs, à partir de 0. Chainloader pointe sur une partition active d'un disque primaire, à
l'adresse 0. Depuis cette adresse, il va lire le premier bloc qui suit (ce que signifie le
paramère "+1"). Il va ainsi y lire le chargeur Windows (voir les remarques concernant la
notation en listes de blocs).

Un autre exemple illustrera le mécanisme de chainloader, qui s'applique au-delà de


Windows :

title Solaris
rootnoverify (hd0,0)
makeactive
chainloader +1

Lancement d'un système Solaris, implanté sur /dev/hda (le lanceur est sur /dev/hda1).

# fdisk -l

Disque /dev/hda: 20.4


Go, 20416757760 octets
16 têtes, 63 secteurs/piste, 39560 cylindres
Unités = cylindres de 1008 * 512 = 516096 octets

Périphérique Boot Start End Blocks Id System


/dev/hda1 * 2 22 10584 be Amorce Solaris

La partition 1 ne se termine pas sur une frontière de cylindre.


/dev/hda2 23 39560 19927152 bf Inconnu

3.2.3 Augmenter la résolution des consoles tty

Par : JohanCwiklinski
Par : JohanCwiklinski

Comme vous avez dû le remarquer, les consoles tty (auxquelles il est possible d'accéder
en combinant les touches [Ctrl]+[Alt]+[F*]) n'ont pas la même résolution que votre
écran.
Si vous souhaitez ne pas démarrer le serveur graphique, les consoles en basse résolution
deviennent vraiment gênantes.

Heureusement, on peut remédier à cela en ajoutant le paramètre vga=xxx dans le fichier


grub.conf.

Par exemple :

title Fedora Core (2.6.18-1.2849.fc6)


root (hd0,2)
kernel /vmlinuz-2.6.18-1.2849.fc6 ro root=/dev/VolGroup00/LogVol00 rhgb quiet vga=791
initrd /initrd-2.6.18-1.2849.fc6.img

Une fois la machine redémarrée, un Tux (un manchot, la mascotte de Linux) est visible un
bref instant en haut à gauche (le nombre de Tux dépend de votre processeur : 1 Tux
pour un monoprocesseur, 2 tux pour un double coeur,etc...).
Vous pouvez ensuite apprécier le changement de résolution de la console.

Voici un tableau résumant les valeurs qu'il est possible de mettre après vga= en fonction
de votre matériel :

Nombre de couleurs 640x480 800x600 1024x768 1280x1024 1600x1200


256 769 771 773 775 776
32 768 784 787 790 793 797
65 536 785 788 791 794 798
16,8M 786 789 792 795 799

Note : Les écrans 16/9 ou widescreens ont des résolutions en xvga, on ne peut donc
pas avoir de résolutions identiques en vga (ci-dessus). Utilisez une résolution inférieure
(Exemple : 1024*768 pour un écran en 1280*800)

3.2.4 Commandes complémentaires du fichier grub.conf

password = wqsqsqsqs

Le fichier de configuration peut comprendre des paramètres de sécurité pour :

bloquer le passage en mode interactif (qui permettrait de modifier certaines lignes de


commande du fichier grub.conf qui s'exécute. Grub permet, depuis le menu, de
modifier la configuration de lancement des systèmes et de lancer des commandes
pendant son exécution) ;
et/ou conditionner le lancement d'un ou plusieurs systèmes à la production d'un mot
de passe.
Plusieurs schémas sont possibles, selon le but recherché :

contrôler le passage en mode interactif : la commande password force la


vérification d'un mot de passe. Si elle est positionnée avant les sections
correspondant aux différentes entrées du menu, GRUB sollicitera un mot de passe
pour passer en mode édition (éditer une ligne du menu) ou ligne de commande. A
défaut de saisie du mot de passe correct, le menu sera utilisé sans possibilité de
modification ;
contrôler le lancement d'un système : si la commande password est positionnée
dans une section, le système décrit dans cette dernière ne pourra être lancé si le
mot de passe n'a pas été correctement vérifié. Un mot de passe spécifique par
entrée est possible.

La mise en oeuvre de password est simple :

1. On définira et cryptera le mot de passe avec la commande (en root) :

# /sbin/grub-md5-crypt

Le programme demande le mot de passe puis l'édite au format crypté; exemple:


$1$BUx8n0$Q5dvNcFdkI7PW/BmD./pI0.

1. On copiera le mot de passe crypté obtenu dans /boot/grub/grub.conf après l'option


password –md5, selon la logique retenue (voir plus haut). L'exemple qui suit décrit la
protection de l'entrée Fedora Core (2.6.10-1.766_FC3smp) :

title Fedora Core (2.6.10-1.766_FC3smp)


password --md5 $1$BUx8n0$Q5dvNcFdkI7PW/BmD./pI0
root (hd0,6)
kernel /boot/vmlinuz-2.6.10-1.766_FC3smp ro root=LABEL=/1 rhgb quiet
initrd /boot/initrd-2.6.10-1.766_FC3smp.img

On notera que le mot de passe mentionné est distinct des différents mots de passe
gérés par les systèmes qui seront lancés. Il est propre à Grub et son usage se restreint
au menu de Grub.

3.2.5 Spécificités de certaines entrées Windows dans grub.conf

map

Pour son lancement, Windows suppose une installation sur le premier disque actif et sur
une partition primaire (non nécessairement la première; on notera que de nombreux
portables comportent dorénavant, en première partition primaire, le système de
restauration de Windows).

En certaines circonstances, Windows a pu être installé sur un autre disque. Le lancement


du système n'est donc pas directement possible par la technique du chainloader.

La solution consiste à organiser une permutation « symbolique » du point de vue de


Grub :
title Windows
map (hd1) (hd0) (à ajouter)
map (hd0) (hd1) (à ajouter)
rootnoverify (hd1,0)
makeactive
chainloader +1

Windows, de facto installé sur le disque 2 (hd1), sera vu de Grub comme étant installé sur
le disque 1 (hd0) et le démarrage de chainloader pourra alors être assuré. Rien n'aura
cependant été modifié quant à la description des unités de stockage et l'artifice reste à
l'usage exclusif de Windows...

unhide / hide

Plusieurs partitions primaires de type FAT, VFAT ou NTFS peuvent être présentes sur un
même disque. Pour démarrer Windows sans équivoque, les commandes hide et unhide
permettent de masquer les partitions à l'exception de celle depuis laquelle l'amorce sera
réalisée.

hidemasque une partition et unhide révèle une partition. La combinaison permet de ne


présenter que la partition ad hoc. Exemple (on masque la première partition) :

title Windows
unhide (hd0,0)
hide (hd0,1)
rootnoverify (hd0,0)
makeactive
chainloader +1

Un autre exemple commenté est livré dans la FAQ portant sur le Dual boot Windows XP -
Fedora, section 4.2 (boot à 3 systèmes d'exploitation: deux versions de Windows et
Linux).

Certains utilisateurs peuvent souhaiter lancer Windows par défaut. Cependant, la mise à
jour des noyaux Fedora conduit à déplacer le rang de l'entrée Windows et le choix par
défaut, porté par la clause default est ainsi modifié (exemple: default=2 pointe sur la
3ème entrée qui correspond à Windows. En cas de mise à jour d'un noyau Fedora, une
nouvelle entrée sera insérée en première position et dès lors, l'index de l'entrée
correspondant à Windows ne sera plus 2 mais 3).

La clause savedefault permet de préserver le rang d'une entrée quelles que soient les
mises à jour de noyaux intervenues:

title Windows Vista/Longhorn (loader)


rootnoverify (hd0,1)
savedefault
makeactive
chainloader +1

4 Utilisation avancée de GRUB


Le menu est lancé. Il est alors possible de passer en mode interactif ou en mode ligne de
Le menu est lancé. Il est alors possible de passer en mode interactif ou en mode ligne de
commandes :

mode interactif : les commandes lues dans le fichier /boot/grub/grub.conf sont


lues au travers du menu et peuvent être modifiées, sans impact toutefois sur le
fichier d'origine ;
mode ligne de commandes : GRUB propose une ligne pour saisir les commandes
qui seront alors exécutées après appui sur la touche [Entrée].

Les deux modes sont activés par appui sur une touche ad hoc :

touche [c] : ligne de commandes (on retourne au menu par la touche [Échap]) ;
touche [e] : mode interactif ; les lignes du fichier de configuration sont appelées
(utilisation des [flèches de navigation]) et peuvent être modifiées.

Claviers et modes
Les claviers en mode ligne de commandes ou interactif ne sont pas toujours
initialisés en « azerty ». Le « qwerty » a ses charmes ! La touche [a], comme
« append » permet de modifier les paramètres de lancement du noyau, pour
l'entrée mise en surbrillance. Cette option peut être très utile pour résoudre
quelques problèmes de blocage (voir les remarques concernant rhgb et acpi).
Toutefois, le clavier n'étant pas initialisé en français au moment de l'activation
de GRUB, il faut presser la touche [q] (qui correspond à la touche [a] pour le
clavier anglais).

4.1 Paramétrer le clavier en AZERTY


Pour paramétrer le clavier, dans l'environnement du shell Grub, en clavier français, on
ajoutera dans le fichier /boot/grub/grub.conf les éléments suivants:

# Emulation d'un clavier azerty_FR


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
# no change for equal
# no change for plus
setkey a q
setkey A Q
setkey z w
setkey z w
setkey Z W
setkey caret bracketleft
# no equivalent for diaresis => we keep the US braceleft
setkey dollar bracketright
# no equivalent for pound => we keep the US braceright
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 z
setkey 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

4.2 Mode interactif


Les lignes sont sélectionnées à l'aide des touches de navigation.

L'appui sur la touche [Échap] annule tous les changements et permet un retour au
menu.

L'appui sur la touche [Entrée] valide les modifications opérées pour la ligne concernée,
sans les inscrire toutefois dans le fichier /boot/grub/grub.conf.

Il est aussi possible d'ajouter des lignes :

appui sur la touche [o] : insertion après la ligne pointée ;


appui sur la touche [O] : insertion avant la ligne pointée.

4.3 Mode ligne de commandes : au lancement de GRUB


La ligne de commandes intègre un éditeur minimal[6], permettant de naviguer au sein de
la ligne saisie, de supprimer, ajouter, remplacer des caractères, appeler l'historique des
commandes passées.

Les commandes qui peuvent être passées par la ligne de commandes sont rappelées
dans 3.3. Certaines commandes sont réservées au menu (grub.conf).

La ligne de commandes permet de lancer un système, de conduire des tests ou plus


directement, d'installer GRUB, notamment en modifiant le MBR.

On signalera une fonction très utile, liée à l'utilisation de la touche [Tab] : à l'instar du
bash qui présente des mécanismes de complétion de commandes, si le curseur se trouve
dans ou avant le premier mot de la ligne, la touche [Tab] affichera une liste des
commandes disponibles, et si le curseur se trouve après le premier mot, [Tab]
complétera avec les noms de disques, de partitions et de fichiers selon le contexte.

Un exemple d'utilisation est donné dans la FAQ portant sur le Dual boot Windows XP -
Un exemple d'utilisation est donné dans la FAQ portant sur le
Fedora (4.1- astuces de GRUB).

[Échap] permet de quitter la ligne de commandes.

4.4 Mode ligne de commandes : sous Linux


Il est possible d'utiliser sous Linux une « émulation de GRUB » pour tester des
commandes ou installer modifier GRUB. Cette émulation s'appuie sur l'équivalent de Stage
2 (pour les puristes: l'émulation consiste à faire traiter les appels système non pas
directement par le BIOS mais par le noyau Linux).

Elle est activée par /sbin/grub. La commande help permet d'accéder à une aide en ligne
(exemple : grub> help kernel). On quitte par la commande quit.

4.5 Utilisation avancée du mode ligne de commandes


Le mode « ligne de commandes » permet d'installer, de tester ou de modifier
l'environnement Grub. L'aide est accessible à tout moment dans le shell Grub par la
commande help (help seul provoque l'édition de toutes les commandes possibles et help
commande donne la description sommaire de la commande mentionnée:

grub> help setup


help setup
setup: setup [--prefix=DIR] [--stage2=STAGE2_FILE] [--force-lba] INSTALL_DEVICE [IMAGE_DEVICE]
Set up the installation of GRUB automatically. This command uses
the more flexible command "install" in the backend and installs
GRUB into the device INSTALL_DEVICE. If IMAGE_DEVICE is
specified, then find the GRUB images in the device IMAGE_DEVICE,
otherwise use the current "root device", which can be set by the
command "root". If you know that your BIOS should support LBA but
GRUB doesn't work in LBA mode, specify the option `--force-lba'.
If you install GRUB under the grub shell and you cannot unmount
the partition where GRUB images reside, specify the option
`--stage2' to tell GRUB the file name under your OS.

4.5.1 Utilisation de root

La syntaxe est: root [DEVICE [HDBIAS]]

DEVICE: hdX [HDBIAS]: partition pour le DEVICE

root (hd0,0)

Root détermine la référence absolue pour toutes les commandes qui seront passées. La
partition désignée sera par ailleurs montée (Grub utilisera les images Stage1_5 pour
supporter le système de fichiers porté par la partition).

4.5.2 Utilisation de setup

La syntaxe est: setup [--force-lba] [--stage2=os_stage2_file] [--prefix=dir]


install_device [image_device]
install_device: localisation où stage1 sera implanté (il peut s'agir du MBR ou d'une
partition; s'il s'agit du MBR, on amorce Grub directement).

image_device (non obligatoire): contient les images Grub (qui sont généralement dans
/boot/grub/, en l'occurrence les fichiers permettant le support, par Grub, de différents
types de fichiers) setup (hd0) (hd0,0) réalise l'installation de stage1 sur le secteur MBR,
à partir d'une image qui est stockée sur (hd0,0) soit la première partition du premier
disque (correspond à /dev/sda1).

setup (hd0,0) (hd0,0) réalise l'installation de stage1 non pas sur le secteur MBR mais
sur la première partition du premier disque.

4.5.3 Utiliser root et setup pour certaines installations

problèmes Grub à l'installation


A l'installation, il peut arriver qu'Anaconda -l'installeur- soit confronté à des
situations qui se caractérisent par une différence entre l'ordre des partitions
tels qu'il ressort de la commande fdisk et l'ordre des partitions perçu par Grub.
Grub ne se lance alors pas correctement et une erreur 17 est affichée. Pour
remédier à la difficulté, on lancera le mode commandes de Grub, on explorera
les partitions à l'aide de find voire de root -par tâtonnement- et on réinitialisera
La partition support de /boot est identifiée en Partition num: 7, Filesystem type
unknown, partition type 0x82 ou type 0x83.

On citera une astuce de Remi Collet, pour régler certains problèmes de démarrage de
Grub liés au nommage des unités de stockage :

L'un des problèmes avec GRUB est lié au nommage des disques différent de celui utilisé
par Linux : (hd0,1) pour /dev/hda2...

Une solution très simple pour identifier les partitions est l'utilisation de la commande find
en mode ligne de commandes (ou en mode « émulation »).

Par exemple, pour installer Grub on peut utiliser les commandes suivantes (plus précises
que grub-install, semble-t-il) :

# grub

GNU GRUB version 0.95 (640K lower / 3072K upper memory)

[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename.]

grub> find /boot/grub/stage1


(hd0,1)
(hd0,4)

grub> root (hd0,1)


Filesystem type is ext2fs, partition type 0x83
grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... yes

Checking if "/boot/grub/stage2" exists... yes


Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 16 sectors are embedded.

succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+16 p (hd0,1)/boot/grub/stage2
/boot/grub/grub.conf"... succeeded
Done.

grub> quit

Phase 1 : find : permet d'identifier les partitions contenant le fichier cherché. Dans
le cas traité on remarquera que la machine utilisée dispose de 2 installations de Linux
(c'était avant que je fasse un /boot commun).
Phase 2 : root : désigne la partition référence pour rechercher les images de Grub
(stage1, stage1_5, stage2). Ces images seront recherchées, selon l'exemple, en
(hd0,1)/boot/grub ou (hd0,1)/grub.
Phase 3 : setup : installation dans le MBR du stage1.

Remi Collet

4.5.4 Utiliser root et setup pour faire cohabiter plusieurs distributions

plusieurs distributions
Il est possible de faire cohabiter sans difficulté plusieurs distributions Linux en
permettant à chacune de réaliser ses mises à jour, sans contraindre
systématiquement à une adaptation du menu Grub. Un exemple illustre le
problème: Fedora ou Ubuntu modifient les noms des noyaux à chaque mise à
jour et si Ubuntu est lancé depuis le Grub de Fedora, il faudra, à chaque mise à
jour, modifier le nom du noyau et de l'initrd dans /boot/grub/grub.conf de la
partition Fedora.

4.5.4.1 Le schéma de base

On se référera en préalable au paragraphe suivant pour comprendre les principes de la


configuration à mettre en place.

Les éléments du schéma :

1. le MBR n'est pas modifié et pointe sur la partition /boot/grub de la distribution X


(exemple : Fedora) ;
2. un stage1 est installé sur la partition supportant /boot/grub de la distribution X ; il
pointe sur /boot/grub de cette partition ;
3. un stage1 est installé sur la partition supportant /boot/grub de la distribution Y
(exemple : Ubuntu); il pointe sur /boot/grub de cette partition (dans l'exemple,
/boot/grub/menu.lst) ;
4. les fichiers /boot/grub/grub.conf (ou /boot/grub/menu.lst) des deux distributions ont
été modifiés pour inclure une entrée pointant sur stage1 résidant sur la partition
été modifiés pour inclure une entrée pointant sur stage1 résidant sur la partition
/boot de l'autre distribution.
5. les séquences sont alors décrites comme suit :
1. MBR -> amorçage de Grub pour la partition de la distribution X (Fedora). Le
menu Grub 'distribution X' s'affiche ;
2. choix de l'entrée pointant sur le stage1 qui réside sur la partition /boot de la
distribution Y (Ubuntu) ;
3. le stage1 lance Grub pour la partition de la distribution Y (Ubuntu). Le menu
Grub 'distribution Y' s'affiche ;
4. une entrée pointe sur le stage1 qui réside sur la partition /boot de la distribution
X (Fedora) et permet ainsi de lancer Grub 'distribution X' si nécessaire.

4.5.4.2 Cas pratique

# fdisk -l

...

Device Boot Start End Blocks Id System


/dev/sda1 1 1274 10233373+ 12 Compaq diagnostics
/dev/sda2 * 1275 7363 48909892+ 6 FAT16
/dev/sda3 7364 13862 52203217+ 7 HPFS/NTFS
/dev/sda4 13863 38913 201222157+ 5 Extended
/dev/sda5 13863 13875 104391 83 Linux
/dev/sda6 13876 14016 1132551 82 Linux swap / Solaris
/dev/sda7 14017 27844 111073378+ 83 Linux
/dev/sda8 27845 27857 104359+ 83 Linux
/dev/sda9 27858 38913 88807288+ 83 Linux

/dev/sda1 : sauvegarde Vista (correspond à (hd0,0)


/dev/sda2 : lanceur de Vista (correspond à (hd0,1) ; on note l'étoile qui indique que la
partition est active;
/dev/sda3 : partition Ntfs (correspond à (hd0,2) ;
/dev/sda5 : partition ext2 (correspond à (hd0,4) ; partition supportant /boot pour
Ubuntu ;
/dev/sda6 : partition swap (correspond à (hd0,5) ;
/dev/sda7 : partition ext3 (correspond à (hd0,6) ; partition supportant / pour
Ubuntu ;
/dev/sda8 : partition ext2 (correspond à (hd0,7) ; partition supportant /boot pour
Fedora ;
/dev/sda9 : partition ext3 (correspond à (hd0,8) ; partition supportant / pour Fedora.

Le MBR pointe sur (hd0,7). C'est donc le menu Grub de Fedora qui s'affiche.

On installe le dispositif :

# grub> setup (hd0,4)(hd0,4) => on installe stage1, issu de (hd0,4)/boot/grub, sur (hd0,4),
soit /dev/sda5; ce stage1 pointe sur (hd0,4)/boot/grub.
# grub> setup (hd0,7)(hd0,7) => on installe stage1, issu de (hd0,7)/boot/grub, sur (hd0,7)
soit /dev/sda7; ce stage1 pointe sur (hd0,7)/boot/grub

On modifie (hd0,4)/boot/grub/menu.lst :
title Menu Fedora
root (hd0,7)
chainloader +1
boot

On modifie « symétriquement » (hd0,7)/boot/grub/grub.conf :

title Menu Ubuntu


root (hd0,4)
chainloader +1
boot

Le tour est joué !

A noter que les entrées concernant Windows ne sont en rien touchées par le dispositif.
Dans les deux fichiers de configuration de Grub, on trouvera :

title Windows Vista/Longhorn (loader)


root (hd0,1)
savedefault
makeactive
chainloader +1

4.6 grub-install
est mentionné dans la section Documentation concernant le Dual boot
grub-install
Windows XP - Fedora.

Le programme, dont l'efficacité est parfois contestée, permet d'installer Grub sur un
disque en utilisant l'émulation réalisée sous Fedora de la ligne de commandes Grub voir
3.2- Mode ligne de commandes. Il suppose les droits root.

La syntaxe est :

/sbin/grub-install périphérique_d'installation

Le périphérique sous Fedora sera désigné selon les règles de nommage de Linux et non
de GRUB.<

Exemple:

/sbin/grub-install /dev/hda

grub-install sera utilisé principalement pour résoudre des difficultés. On notera une
option intéressante: --recheck ; cette option conduit à « Re-vérifier la carte des
périphériques, même si /boot/grub/device.map existe déjà. Vous ne devriez utilisez cette
option que lorsque vous ajouter/enlevez des disques de votre ordinateur ».

grub-install en cas de problème de grub...


En cas de souci avec le grub votre actuelle installation de Fedora, vous pourrez
tenter de le réparer avec la commande grub-install
Oui, mais, le grub-install doit être lancé sur votre installation qui justement
n'arrive pas à se lancer. Pas de panique !

chroot est là pour vous servir :-) Vous allez devoir démarrer votre ordinateur
en utilisant un livecd. Une fois le système lancé, connectez-vous en root :

$ su -

Montez votre disque actuel quelque part (/mnt semble être une bonne option :

# mkdir /mnt/sysimage
# mount /dev/VolGroup00/LogVol00 /mnt/sysimage

Le chemin /dev/VolGroup00/LogVol00 correspond à celui du LVM installé de base


par Fedora. Si vous avez choisi de na pas utiliser LVM, le chemin sera du genre
/dev/sda2 ; si vous avez choisi (ce qui est recommandé) de modifier le nom du
LVM, la commande lvdisplay listera les volumes LVM présents.

Une fois votre système monté, vous pourrez le "chrooter":

# chroot /mnt/sysimage

Vous devrez ensuite monter le minimum syndical requis au bon


fonctionnement du grub-install (à savoir /boot, /dev, /proc et /sys). Une
commande vous permet de faire cela très simplement dans un environnement
chrooté :

# mount -a

Une fois tout ceci prêt, vous pourrez simplement lancer la commande grub-
install, et espérer que cela résoudra votre problème :-)

5 État des commandes et codes d'erreur


5.1 Commandes réservées au menu
présentées en 2.2.2

default
fallback
hiddenmenu
timeout
title

5.2 Commandes utilisables en menu ou ligne de commandes


présentées en 2.2.2
chainloader
hide / unhide
initrd
kernel
makeactive
map
md5crypt
password
root
rootnoverify

Non présentées

bootp
color
device
dhcp
ifconfig
pager
partnew
parttype
rarp
serial
setkey
terminal
tftpserver
blocklist
boot
cat
cmp
configfile
debug
displayapm
displaymem
embed
find
fstest
geometry
halt
help
impsprobe
install
ioprobe
lock
module
modulenounzip
pause
reboot
read
savedefault
setup
testload
testvbe
uppermem
vbeprobe

Le « manuel de référence des commandes » est accessible à l'adresse :

version française (GRUB 0.92)


version anglaise (GRUB 0.97)

5.3 État des erreurs signalées par GRUB


version française (GRUB 0.92)
version anglaise (GRUB 0.97)

5.4 Quelques moyens de corriger les erreurs

5.4.1 Error 17: Cannot mount selected partition

le menu Grub s'est correctement affiché mais le choix d'un système a conduit à une
erreur. Cette erreur relève du Stage2; en d'autres termes, Grub est correctement installé
mais le paramétrage de /boot/grub/grub.conf, pour l'entrée qui a été sollicitée, n'est pas
correct.

L'erreur signifie: "17 : Cannot mount selected partition Cette erreur est retournée si la
partition demandée existe, mais le type du système de fichiers n'est pas reconnu par
GRUB"

La désignation de root (hdX,Y) n'est donc pas correcte.

1- L'erreur vient généralement d'une différence entre la perception de l'ordre des


partitions et la solution consiste à modifier les valeurs portées dans la ligne root (hdX,Y)
pour l'entrée défaillante.

Un exemple:

Le choix Fedora ne peut se lancer.

a- configuration des disques:

Disque /dev/sda: 250.0 Go, 250059350016 octets


...
Périphérique Amorce Début Fin Blocs Id Système
/dev/sda1 * 1 30400 244187968+ 7 HPFS/NTFS
Disque /dev/sdb: 250.0 Go, 250059350016 octets
...
Périphérique Amorce Début Fin Blocs Id Système
/dev/sdb1 * 1 29644 238115398+ 83 Linux
/dev/sdb2 29645 30401 6080602+ 5 Extended
/dev/sdb5 29645 30401 6080571 82 Linux swap / Solaris

b- extrait de /boot/grub/grub.conf:

title Fedora
root (hd1,0) // => (hd1,0) est ici supposé représenter /dev/sdb1
kernel /vmlinuz-2.6.23.1-42.fc8 root=/dev/sd1 ro
initrd /initrd-2.6.23.1-42.fc8.img

c- utilisation de Grub en mode ligne de commandes:

grub> find /boot/grub/stage1


(hd1,0)

Le problème est corrigé en remplaçant (hd1,0) par (hd0,0) contre toutes les
indications fournies ... Grub considère que (hd1,0) correspond à /dev/sdb1 mais de
facto, cette correspondance n'est pas correcte. Il y a divergence entre l'ordre perçu par
facto, cette correspondance n'est pas correcte. Il y a divergence entre l'ordre perçu par
Grub et l'ordre géré par le BIOS.

2- En d'autres circonstances, l'erreur peut survenir lorsque la partition supportant


/boot est très distante du MBR. Un exemple:

Disk /dev/sda: 320.0 GB, 320072933376 bytes


255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xe175e175

Device Boot Start End Blocks Id System


/dev/sda1 * 1 4080 32772568+ 7 HPFS/NTFS
/dev/sda2 4081 32126 225279495 7 HPFS/NTFS
/dev/sda3 32127 32151 200812+ 83 Linux
/dev/sda4 32152 38913 54315765 5 Extended
/dev/sda5 32152 38913 54315733+ 8e Linux LVM

La partition boot démarre au 32127 ème cylindre.

En ce cas, la solution réside hélas en un nouveau paritionnement du disque pour


rapprocher la partition supportant /boot du secteur d'amorce.

5.4.2 Lancement de Windows : Starting up... GRUB loading stage2

Windows ne peut se lancer. Le point a été vu précédemment[7].

L'exemple fourni précédemment (cas général, -1-) est une illustration du problème :
Windows semble bien résider sur la première partition du premier disque actif mais ne se
lance pas car de facto, l'ordre des disques perçu par Grub diffère de l'ordre réel. Le
problème a été corrigé pour Fedora ; la correction, pour Windows, consiste à utiliser la
clause map comme suit :

title Windows
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,0)
chainloader +1

5.4.3 grubloading, please wait error 21

L'erreur a une origine matérielle. Le MBR tente de lire la partition /boot sur un disque qui
ne peut être accédé.

S'il n'y a qu'un seul disque dans le système, on veillera à vérifier les branchements et la
déclaration dans le BIOS.

S'il y a deux disques et si le disque en question est en seconde position, la solution


consiste généralement à brancher celui-ci derrière le premier disque (et non derrière un
équipement de type graveur).

5.4.4 error 15: File not found


L'erreur signifie:

15 : File not found


Cette erreur est retournée si le fichier n'est pas trouvé, mais le reste est correct (comme les info

Elle résulte généralement de configurations disques atypiques. La solution consiste à


forcer une nouvelle reconnaissance des disques par le script grub-install.

Exemple (environnement FC6; on notera que les partitions sont encore distinguées selon
la technologie support en hdX ou sdX):

Disk /dev/hdb: 81.9 GB, 81964302336 bytes


...
Device Boot Start End Blocks Id System
/dev/hdb1 * 1 9963 80027766 7 HPFS/NTFS

Disk /dev/hdc: 10.2 GB, 10248118272 bytes => support de Fedora


...
Device Boot Start End Blocks Id System
/dev/hdc1 * 1 13 104391 83 Linux
/dev/hdc2 14 1245 9896040 8e Linux LVM

Disk /dev/sda: 251.0 GB, 251000192512 bytes


...
Device Boot Start End Blocks Id System
/dev/sda1 * 1 30515 245111706 7 HPFS

Extrait de /boot/grub/grub.conf:

title Fedora Core (2.6.18-1.2798.fc6)


root (hd1,0)
kernel /vmlinuz-2.6.18-1.2798.fc6 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-1.2798.fc6.img

Extrait de /boot/grub/device.map:

# this device map was generated by anaconda


(hd0) /dev/hdb

Anaconda n'a pas identifié toute la configuration (éléments manquants: /dev/hdc et


/dev/sda).

La solution consiste à lancer à utiliser le Rescue Disk pour lancer le script grub-install:

chroot /mnt/sysimage
grub-install /dev/hdb --recheck

Grub-install va réinstaller le MBR sur le disque /dev/hdb et forcer une nouvelle


reconnaissance (clause --recheck) de l'environnement; il mettra ainsi à jour le fichier
device.map.

L'utilisation du live CD est aussi possible. On montera alors la partition /dev/hdb (sur /mnt)
et on enchaînera les commandes précédentes.
et on enchaînera les commandes précédentes.

Récupérée de « http://doc.fedora-fr.org/wiki/GRUB_:_Les_bases_pour_Fedora »
Catégories : Système | GRUB

Dernière modification de cette page le 3 août 2009 à 09:02.


Cette page a été consultée 53 471 fois. Contenu disponible sous Paternité 2.5 .

Fedora-Fr
À propos de Fedora-Fr
Historique
Mon Fedora-Fr
Recherche

Télécharger
Obtenir Fedora
Toutes les méthodes de téléchargement

Support
Aide sur IRC
Aide sur la liste de diffusion
Forums
Documentation

Sous-projets
Muffin
Plateforme de blog

Flux RSS des actualités de Fedora-Fr


Twitter de Fedora-Fr
Identi.ca de Fedora-Fr
Fan page Facebook
Partager |

Fedora-Fr est hébergé gracieusement par Ikoula.

Le Projet Fedora est maintenu et dirigé par la communauté et sponsorisé par Red Hat.

Ce site est également maintenu par la communauté. Red Hat n'est pas responsable de
son contenu.

Vous aimerez peut-être aussi