8.4. Utilisation de GRUB pour paramétrer le processus de démarrage

8.4.1. Introduction

[Avertissement]

Avertissement

Une mavvaise configuration de GRUB peut rendre votre système inutilisable si vous n'avez pas de périphérique d'amorçage alternatif comme un CD-ROM. Cette section n'est pas obligatoire pour démarrer votre système LFS. Il se peut que vous vouliez simplement modifier votre chargeur de démarrage actuel, comme Grub-Legacy, GRUB2, ou LILO.

Assurez-vous d'avoir un disque de démarrage de façon à pouvoir « sauver » l'ordinateur si, par malheur, celui-ci devenait inutilisable (non amorçable). Si vous n'avez pas déjà de périphérique de démarrage, vous pouvez en créer un. Afin que la procédure ci-dessous fonctionne, vous devez vers un tour du côté de BLFS et installer xorriso.

cd /tmp &&
grub-mkrescue --output=grub-img.iso &&
xorriso -as cdrecord -v dev=/dev/cdrw blank=as_needed grub-img.iso

8.4.2. Conventions de nommage de GRUB

GRUB utilise sa propre structure de nommage des disques et partitions, de la forme (hdn,m), où n est le numéro du disque dur et m le numéro de la partition. Le numéro du disque dur commence à zéro, mais le numéro de la partition commence à un pour des partition normales et à cinq pour les partitions étendues. Notez que ceci change des versions des versions précédentes où les deux numéros commençaient à zéro. Par exemple, la partition sda1 signifie (hd0,1) pour GRUB et sdb3 signifie (hd1,3). Contrairement à Linux, Grub ne considère pas les lecteurs de CDRoms comme des disques durs. Par exemple, si un CD se trouve sur hdb et un second disque dur sur hdc, ce dernier disque sera malgré tout (hd1).

Vous pouvez déterminer la façon de voir vos lecteurs de disque par GRUB en lançant :

grub-mkdevicemap --device-map=device.map
cat device.map

8.4.3. Réglage de la configuration

GRUB fonctionne en écrivant les données sur le premier secteur physique du disque dur. Cet endroit ne fait partie d'aucun szstème de fichiers. Les programmes accèdent alors aux modules de GRUB dans la partition de démarrage. L'emplacement par défaut est /boot/grub/.

L'emplacement de la partition de démarrage est un choix de l'utilisateur qui change la configuration. Une recommendation est d'avoir une petite (la taille suggérée est de 100 Mio) partition à part pour les informations d'amorçage. De cette façon, chaque construction, que ce soit LFS ou d'autres distributions commerciales, peut accéder aux mêmes fichiers de démarrage et on peut y accéder à partir n'importe quel système amorcé. Si vous choisissez de faire cela, vous aurez besoin de monter la partition à part, de déplacer tous les fichiers du répertoire /boot actuel (par exemple, le noyau linux que vous venez de construire à la section précédente) vers la nouvelle partition. Vous aurez ensuite besoin de démonter la partition puis de la remonter en tant que /boot. Si vous le faites, assurez-vous de mettre à jour /etc/fstab.

L'utilisation de la partition lfs actuelle fonctionnera également, mais la configuration pour plusieurs systèmes est plus difficile.

En utilisant les informations ci-dessus, déterminez le nom adapté à la partition racine (ou partition de démarrage, s'il en existe une à part). Pour l'exemple suivant, on suppose que la partition racine (ou (de démarrage à part) est sda2.

Installez les fichiers de GRUB dans /boot/grub et paramétrez le secteur d'amorçage :

[Avertissement]

Avertissement

La commande suivante va écraser le chargeur de démarrage actuel. Ne lancez pas la commande si ce n'est pas ce que vous désirez, par exemple si vous utilisez un gestionnaire de démarrage extérieur pour gérer la Master Boot Record (MBR).

grub-install /dev/sda
[Remarque]

Remarque

grub-install est un script et il appelle un autre programme, grub-probe, qui peut échouer avec un message "cannot stat `/dev/root'" (ne peut trouver /dev/root). Dans un cas pareil, créez un lien symbolique temporaire entre votre partition racine et /dev/root :

ln -sv /dev/sda2 /dev/root

Le lien symbolique ne restera là que jusqu'au redémarrage du système. Le lien ne sert qu'à la procédure d'installation.

8.4.4. Créer le fichier de configuration

Générez /boot/grub/grub.cfg :

cat > /boot/grub/grub.cfg << "EOF"
# Début de /boot/grub/grub.cfg
set default=0
set timeout=5
insmod ext2
set root=(hd0,2)

menuentry "GNU/Linux, Linux 3.1-lfs-7.0" {
        linux   /boot/vmlinuz-3.1-lfs-7.0 root=/dev/sda2 ro
}
EOF

GRUB est un programme extrêmement puissant et il offre un très grand nombre d'options pour démarrer depuis une large gamme de périphériques, de systèmes d'exploitation et de types de partition. Il y a aussi beaucoup d'options de personnalisation telles que les écrans flashies graphiques, jouer des sons, l'entrée souris etc. Les détails de ces options vont au-delà des objectifs de cette introduction.

[Remarque]

Remarque

Il existe une commande, grub-mkconfig qui peut écrire automatiquement un fichier de configuration. Elle utilise un ensemble de scripts situés dans /etc/grub.d/ et elle détruira les personnalisations que vous aurez faites. Ces scripts sont d'abord conçus pour des distributions non basées sur les sources et ils ne sont pas recommandés pour LFS. Si vous installez une distribution Linux du marché, il est fort probable que ce programme soit lancé. Assurez-vous de sauvegarder votre fichier grub.cfg.