Rendre le système LFS amorçable

Votre nouveau système LFS est pratiquement fini. Une des dernières choses à faire est de vous assurer que le système peut démarrer proprement. Les instructions ci-dessous s'appliquent seulement aux ordinateurs de l'architecture IA-32, c'est-à-dire les PC standards. Des informations sur le « chargement au démarrage » pour les autres architectures devraient être disponibles aux emplacements habituelles des ressources pour ces architectures.

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 réparer l'ordinateur si, par malheur, celui-ci devenait inutilisable (non amorçable).

Plus tôt, nous avons compilé et installé le chargeur de démarrage Grub pour cette étape. La procédure implique l'écriture de quelques fichiers spéciaux de Grub en des endroits spécifiques sur le disque dur. Nous recommandons fortement la création d'une disquette de démarrage Grub comme sauvegarde. Insérez une disquette de démarrage 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 alors que 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)
[Warning]

Warning

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).

Ensuite, 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. Quitter 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"
# Début de /boot/grub/menu.lst

# Par défaut, lance la première entrée du menu.
default 0

# Attends 30 secondes avant de lancer le noyau par défaut.
timeout 30

# Utilise de jolies couleurs.
color green/black light-green/black

# La première entrée concerne LFS.
title LFS 6.1
root (hd0,3)
kernel /boot/lfskernel-2.6.11.12 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 /etc/grub &&
ln -s /boot/grub/menu.lst /etc/grub