Rendre le système LFS démarrable

Votre nouveau système LFS est pratiquement fini. Une des dernières choses à faire est de vous assurer que vous pouvez le démarrer. 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. Vous devez vraiment connaitre votre chargeur actuel et tout autre système d'exploitation présent sur votre disque dur que vous souhaitez pouvoir lancer. Assurez-vous d'avoir une disquette de démarrage de façon à pouvoir réparer votre ordinateur si, par malheur, votre ordinateur devenait inutilisable (non démarrable).

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. Avant d'en arriver là, nous vous recommandons fortement de créer une disquette de démarrage Grub au cas où. 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, nous allons lancer 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. Ceci signifie, par exemple, que la partition hda1 est (hd0,0) pour Grub alors que hdb2 est (hd1,1). Contrairement à Linux, Grub ne considère pas les lecteurs de CDRoms comme des disques durs, donc si vous avez un CD sur hdb, par exemple, 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. Pour l'exemple suivant, nous supposerons que votre partition root est hda4.

Tout d'abord, indiquez à Grub où chercher ses fichiers stage{1,2} -- vous pouvez utiliser la touche tabulation 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 ce que vous voulez. Par exemple, vous pourriez utiliser un gestionnaire de démarrage autre 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 commande deviendrait : setup (hd0,3).

Ensuite, indiquez-lui 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 :

quit

Maintenant, nous avons besoin de créer un fichier "liste de menus" définissant le menu de démarrage de Grub :

cat > /boot/grub/menu.lst << "EOF"
# Debut de /boot/grub/menu.lst

# Par defaut, lance la premiere entree du menu.
default 0

# Attends 30 secondes avant de lancer le defaut.
timeout 30

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

# La premiere entree concerne LFS.
title LFS 5.0
root (hd0,3)
kernel /boot/lfskernel root=/dev/hda4 ro
EOF

Vous pouvez souhaiter ajouter une entrée pour votre distribution hôte. Cela pourrait ressembler à ceci :

cat >> /boot/grub/menu.lst << "EOF"
title Red Hat
root (hd0,2)
kernel /boot/kernel-2.4.20 root=/dev/hda3 ro
initrd /boot/initrd-2.4.20
EOF

De même, s'il vous arrive de lancer Windows, 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 vous dit pas tout ce que vous souhaitez savoir, vous pouvez trouver plus d'informations concernant Grub sur son site web, situé sur http://www.gnu.org/software/grub.