2.4. Terminologie relative à GRUB

Un des points fondamentaux à maîtriser avant d'utiliser GRUB est la façon dont le programme fait référence aux périphériques, tels que votre disque dur et les partitions. Ces informations sont très importantes lorsque vous configurez GRUB pour lui permettre de démarrer plusieurs systèmes d'exploitation.

2.4.1. Noms des périphériques

Lorsque vous faites référence à un périphérique spécifique avec GRUB, utilisez le format suivant (notez que les parenthèses et les virgules sont très importantes dans la syntaxe) :

(<type-of-device><bios-device-number>,<partition-number>)

<type-of-device> spécifie le type de périphérique à partir duquel GRUB démarre. Les deux options les plus courantes sont hd pour un disque dur et fd pour une disquette de 3,5 pouces. Un autre type de périphérique moins utilisé, mais également disponible, est nd pour un disque réseau. De plus amples instructions sur la configuration de GRUB de façon à démarrer sur le réseau se trouvent en ligne à l'adresse suivante : http://www.gnu.org/manual/grub/.

<bios-device-number> correspond au numéro du périphérique BIOS. Le disque dur IDE primaire est numéroté 0 et un disque dur IDE secondaire est numéroté 1. Cette syntaxe est équivalente à celle utilisée pour les périphériques par le noyau. Par exemple, la lettre a dans hda pour le noyau est analogue au 0 dans hd0 pour GRUB, le b dans hdb est analogue au 1 dans hd1, et ainsi de suite.

<partition-number> se rapporte au numéro d'une partition sur un périphérique. Comme pour l'élément <bios-device-number>, la numérotation des partitions commence par 0. Toutefois, les partitions BSD sont désignées par des lettres, où a correspond à 0, b correspond à 1, et ainsi de suite.

TuyauAstuce
 

Le système de numérotation de GRUB pour les périphériques commence toujours par 0 et non pas 1. Le non respect de cette distinction est la source d'une des erreurs les plus courantes commises par les nouveaux utilisateurs.

Pour donner un exemple, si un système possède plusieurs disques durs, GRUB fait référence au premier disque dur comme (hd0) et au deuxième comme (hd1). De la même manière, GRUB fait référence à la première partition du premier disque en tant que (hd0,0) et à la troisième partition sur le second disque dur en tant que (hd1,2).

GRUB fait appel aux règles suivantes pour nommer les périphériques et les partitions :

2.4.2. Noms de fichiers et listes des blocs

En saisissant des commandes pour GRUB qui impliquent un fichier, comme une liste de menu, il est impératif de spécifier le chemin absolu du fichier immédiatement après avoir désigné le périphérique et la partition.

L'exemple suivant illustre la structure d'une telle commande :

(<device-type><device-number>,<partition-number>)</path/to/file>

Dans cet exemple, remplacez <device-type> par hd, fd ou nd. Remplacez <device-number> par le nombre entier du périphérique. Remplacez </path/to/file> par le chemin absolu du périphérique de niveau supérieur.

Vous pouvez également indiquer à GRUB des fichiers qui n'apparaissent pas dans le système de fichiers, tel qu'un chargeur de chaîne par exemple qui apparaît dans les premiers blocs d'une partition. Pour charger ces fichiers, vous devez fournir une liste de blocs qui indique bloc par bloc, l'emplacement du fichier sur la partition. Étant donné qu'un fichier peut être constitué de plusieurs blocs, il existe une syntaxe particulière pour écrire une liste de blocs. Chaque bloc contenant le fichier est décrit par un numéro de bloc décalé, suivi d'un nombre de blocs après ce point de décalage. Les décalages de blocs sont listés séquentiellement dans une liste délimitée par des virgules.

Prenons l'exemple de la liste de blocs suivante pour illustrer cette notion :

0+50,100+25,200+1

Cette liste de blocs indique à GRUB qu'il doit utiliser un fichier commençant au premier bloc de la partition et qui utilise les blocs 0 à 49, 99 à 124 et 199.

Savoir comment écrire des listes de blocs est très utile lorsque GRUB doit charger des systèmes d'exploitation qui utilisent le chargement en chaîne. Vous pouvez laisser tomber le décalage de blocs si vous commencez au bloc 0. Par exemple, le fichier de chargement en chaîne dans la première partition du premier disque dur devrait s'appeler ainsi :

(hd0,0)+1

Vous pouvez également utiliser la commande chainloader suivante avec un mode d'indication de liste de blocs similaire à la ligne de commande GRUB après avoir spécifié le bon périphérique et la bonne partition et en étant connecté en tant que root :

chainloader +1

2.4.3. Le système de fichiers racine et GRUB

L'utilisation du terme système de fichiers root a un différent sens dans GRUB. Il est important de se rappeler que le système de fichiers root de GRUB n'a rien à voir avec le système de fichiers root de Linux.

Le système de fichiers root de GRUB est le niveau supérieur du périphérique spécifié. Par exemple, le fichier image (hd0,0)/grub/splash.xpm.gz est situé au sein du répertoire /grub/ au niveau supérieur (ou root) de la partition (hd0,0) (qui est en fait la partition /boot/ du système).

Une fois que GRUB a chargé sa partition root (qui est l'équivalent de la partition /boot/et contient le noyau Linux), la commande kernel peut être exécutée, avec l'emplacement du fichier de noyau en option. Lorsque le noyau Linux démarre, il établit le système de fichiers root auquel les utilisateurs Linux sont habitué. Le système de fichiers root de GRUB et ses montages sont oubliés ; ils ne servaient qu'au démarrage du fichier du noyau.

Pour de plus amples informations, lisez les notes relatives aux commandes root et kernel contenues dans la Section 2.6.