Linux From Sratch: Rendre le système LFS amorçable
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.
- Désarchivez Sysvinit
- Positionnez-vous dans le répertoire src
- Editez le fichier
Makefile
- Quelque part dans ce fichier, mais avant la règle "all", ajoutez cette ligne : ROOT = $LFS
- Préfixez toutes les occurrences
/dev des quatre dernières lignes par $(ROOT)
Après avoir fait cela, les quatre dernières lignes du fichier doivent ressembler à :
- Installez le paquetage en exécutant :
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 :
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.
- Créez le fichier
$LFS/etc/passwd contenant: root:s394ul1Bkvmq2:0:0:root:/root:/bin/bash
- Créez le fichier
$LFS/etc/group contenant: root::0:
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.
- Désarchivez Bash
- Installez Bash en lançant:
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 :
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.
[22 février 2002, JDNet]
|