Page suivante Page précédente Table des matières

5. Rendre le système LFS amorçable

5.1 Installer Sysvinit

Normalement, lorsque le noyau a terminé de se charger et d'initialiser divers composants systèmes, il tente de charger un programme appelé init qui terminera le processus de démarrage. Le paquetage utilisé sur la majorité sinon tous les systèmes Linux est Sysvinit et c'est justement lui que nous utilisons pour notre système LFS.

Après avoir fait cela, les quatre dernières lignes du fichier doivent ressembler à :

   @if [! -p $(ROOT)/dev/initctl ]; then \   
   echo "Creating $(ROOT)/dev/initctl";  \   
   rm -f $(ROOT)/dev/initctl;  \   
   mknod -m 600 $(ROOT)/dev/initctl p; fi 
 

make -e LDFLAGS=-static; make install  
 

5.2 Configurer Sysvinit

Pour que Sysvinit fonctionne, vous devez créer un fichier de configuration approprié. Créez le fichier $LFS/etc/inittab contenant :

# Begin /etc/inittab  
  
id:2:initdefault: 
  
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now 
  
1:2345:respawn:/sbin/sulogin 
  
# End /etc/inittab 
 

5.3 Créer les fichiers passwd et group

Comme vous pouvez le voir dans le fichier inittab, lorsque nous amorçons le système, init démarre le programme sulogin qui vous demandera le mot de passe root. Cela signifie que nous avons besoin de créer un fichier de mots de passe sur le système LFS.

Le mot de passe encodé dans le fichier passwd est: lfs123

Lorsque le système vous demandera le mot de passe root, c'est celui-ci que vous devez entrer.

5.4 Installer le shell Bash

Après que sulogin ait validé le mot de passe root, il tentera de lancer un interpréteur de commandes (plus simplement appelé shell), généralement Bash. Nous devons donc le compiler. Mais comme aucune bibliothèque n'est encore disponible sur le système, nous devons le lier statiquement, ainsi que nous avons procédé pour Sysvinit.

./configure --enable-static-link  
make; make -e prefix=$LFS/usr install 
mv $LFS/usr/bin/bash $LFS/bin  
cd $LFS/bin; ln -s bash sh 
 

5.5 Ajouter une entrée à LILO

Afin de pouvoir démarrer le système LFS, nous devons mettre à jour le fichier/etc/lilo.conf. Ajoutez-y les lignes suivantes :

image=<image du noyau courant>  
   label=<label> 
   root=$LFS 
   read-only 
 

Remplacez <image du noyau courant> par le nom du fichier contenant l'image du noyau utilisé par votre système. Vous pouvez remplacer <label> par ce que bon vous semble. Pour ma part, j'utilise comme label "lfs". Ce label correspond à ce que vous devez taper au démarrage de la machine lorsque LILO vous demande le système que vous souhaitez démarrer.

Maintenant lancez lilo afin de mettre à jour l'amorceur du système.

5.6 Tester le système

Après avoir effectué les opérations précédentes, vous pouvez vérifier s'il est possible de se connecter au système LFS en redémarrant la machine. N'oubliez pas à l'affichage de LILO de taper le label que vous avez choisi plus haut. Si tout se déroule correctement, sulogin vous demandera le mot de passe root. Saisissez-le. Vous devriez alors vous retrouver sous le shell. Remarquez que vous ne pourrez pas arrêter le système par l'intermédiaire de la commande shutdown. Bien que ce programme soit présent, il vous renverra comme erreur "You don't exist. Go away" si vous essayez de l'exécuter. Cela signifie que le système est incapable de localiser le fichier des mots de passe (/etc/passwd). Sulogin, bien que statiquement lié, dépend quand même de la bibliothèque NSS (Name Server Switch) qui fait partie de la bibliothèque C que nous installerons ultérieurement. La bibliothèque NSS est utilisée dans ce cas pour indiquer à sulogin où se trouve le fichier de mots de passe.

Pour le moment, vous pouvez redémarrer le système en utilisant reboot -f . Cette commande outrepassera le redémarrage du système normalement opéré par shutdown et redémarrera instantanément. Comme le système de fichiers est monté en lecture seule, cette opération n'endommagera rien. Par contre vous pourriez être informé au prochain démarrage que le système de fichiers n'a pas été correctement démonté et qu'il faut lancer e2fsck pour vérifier s'il n'y a pas de problème.


Page suivante Page précédente Table des matières