8.4.1. Installation de GRUB
Votre système LBS flambant neuf est pratiquement fini. Une des
dernières choses à faire est de vous assurer que le système peut
démarrer correctement.
Attention
Ce paquet ne se compilera que pour les architectures x86 et
x86_64 contenant des bibliothèques 32 bits. Si vous choisissez de
construire sur x86_64 sans bibliothèques 32 bits (pas de
multilib), vous devez utiliser LILO à la place. Des informations
sur le « chargement de
démarrage » pour d'autres architectures devraient
être disponibles aux endroits habituels spécifiques à ces
architectures
Ce paquet est connu pour avoir des soucis quand les options
d'optimisation par défaut (en incluant les options -march
et -mcpu
) sont sont modifiées. Donc, si
des variables d'environne qui surchargent les optimisations par
défaut, telles que CFLAGS
et
CXXFLAGS
, supprimez cette initialisation
pour la construction de GRUB.
Commencez par appliquer le correctif suivant pour mieux détecter
les lecteurs, corriger des problèmes de GCC 4.x, et fournir un
meilleur support SATA pour certains contrôleurs de disque :
patch -Np1 -i ../grub-0.97-disk_geometry-1.patch
Par défaut, GRUB ne supporte pas les systèmes de fichier ext2 avec
des nœuds 256-byte. Corrigez cela en appliquant le correctif
suivant :
patch -Np1 -i ../grub-0.97-256byte_inode-1.patch
Préparez la compilation de Grub :
./configure --prefix=/usr
Compilez le paquet mais utilisez des drapeaux d'optimisation
personnalisés pour empêcher une erreur levée lors des routines de
test :
make CFLAGS="-march=i486 -mtune=native -Os"
Pour tester les résultats, lancez :
make check
Installez le paquet :
make install
mkdir -v /boot/grub
cp -v /usr/lib/grub/i386-pc/stage{1,2} /boot/grub
Remplacez i386-pc
par le répertoire
adéquat pour le matériel utilisé.
Le répertoire i386-pc
contient aussi
un certain nombre de fichiers *stage1_5
, différents suivant les différents
systèmes de fichiers. Jetez un œil aux fichiers disponibles
et copiez les bons dans le répertoire /boot/grub
. La plupart des utilisateurs copieront
les fichiers e2fs_stage1_5
et/ou
reiserfs_stage1_5
8.4.2. Configuration de GRUB
Le chargement au démarrage est un domaine complexe. Tout d'abord,
quelques mots de mise en garde sont nécessaires. Vous devez
vraiment connaître le chargeur actuel et tout autre système
d'exploitation présent sur le disque dur amorçable. Assurez-vous
d'avoir une disquette de démarrage de façon à pouvoir
« sauver » l'ordinateur si,
par malheur, celui-ci devenait inutilisable (non amorçable).
La procédure implique d'écrire quelques fichiers GRUB spéciaux à
des endroits spécifiques sur le disque dur. Nous vous recommandons
fortement de créer une disquette de démarrage GRUB de sauvegarde.
Insérez une disquette vierge et lancez les commandes
suivantes :
dd if=/boot/grub/stage1 of=/dev/fd0 bs=512 count=1
dd if=/boot/grub/stage2 of=/dev/fd0 bs=512 seek=1
Enlevez la disquette et rangez-la dans un endroit sûr. Maintenant,
lancez le shell grub :
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,
tout deux commençant à zéro. Par exemple, la partition hda1
est (hd0,0) pour GRUB et hdb3
est (hd1,2). 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).
En utilisant les informations ci-dessus, déterminez la désignation
appropriée pour votre partition root (ou votre partition de
démarrage si celle que vous utilisez est séparée). Pour l'exemple
suivant, il est supposé que votre partition root (ou votre
partition séparée) est hda4
.
Indiquez à Grub où chercher ses fichiers stage{1,2}
. La touche tabulation est utilisable
partout pour que Grub vous affiche les alternatives :
root (hd0,3)
Avertissement
La commande suivante écrasera votre chargeur de démarrage actuel.
Ne lancez pas cette commande si ce n'est pas désiré, par exemple,
lors de l'utilisation d'un autre gestionnaire de démarrage pour
gérer votre MBR (Master Boot Record). Dans ce cas, il serait
probablement plus sensé d'installer Grub dans le
« secteur de boot » de la
partition LFS, auquel cas la prochaine commande
deviendrait : setup
(hd0,3)
.
Indiquez à Grub de s'installer dans le MBR de hda
:
setup (hd0)
Si tout va bien, Grub indiquera avoir trouvé ses fichiers dans
/boot/grub
. C'est tout ce qu'il y a à
faire. Quittez le shell grub :
quit
Créez un fichier « liste de
menus » définissant le menu de démarrage de Grub :
cat > /boot/grub/menu.lst << "EOF"
# Begin /boot/grub/menu.lst
# démarre la première entrée du menu.
default 0
# Attend 30 secondes avant de démarrer l'entrée par défaut.
timeout 30
# Utilise de jolies couleurs.
color green/black light-green/black
# La première entrée est pour LFS.
title LFS 6.5
root (hd0,3)
kernel /boot/lfskernel-2.6.30.2 root=/dev/hda4
EOF
Ajoutez une entrée pour votre distribution hôte si vous le
souhaitez. Cela pourrait ressembler à ceci :
cat >> /boot/grub/menu.lst << "EOF"
title Red Hat
root (hd0,2)
kernel /boot/kernel-2.6.5 root=/dev/hda3
initrd /boot/initrd-2.6.5
EOF
Dans le cas d'une machine avec plusieurs systèmes d'exploitation,
l'entrée suivante devrait le permettre :
cat >> /boot/grub/menu.lst << "EOF"
title Windows
rootnoverify (hd0,0)
chainloader +1
EOF
Si info grub ne
fournit pas toutes les données nécessaires, plus d'informations
concernant Grub sont disponibles sur le site web, situé sur
http://www.gnu.org/software/grub/.
Le FHS stipule que le fichier menu.lst
de GRUB doit être un lien symbolique
vers /etc/grub/menu.lst
. Pour
satisfaire ce pré-requis, lancez la commande suivante :
mkdir -v /etc/grub
ln -sv /boot/grub/menu.lst /etc/grub