Entrer dans l'environnement chroot

Il est temps d'entrer dans l'environnement chroot pour commencer la construction et l'installation de votre système final LFS. Toujours en tant que root, lancez la commande suivante pour entrer dans ce petit monde peuplé seulement, pour le moment, des outils temporaires :

chroot "$LFS" /tools/bin/env -i \
    HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
    PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
    /tools/bin/bash --login +h

L'option -i donnée à la commande env effacera toutes les variables de l'environnement chroot. Après cela, seules les variables HOME, TERM, PS1 et PATH sont toujours initialisées. La construction TERM=$TERM initialisera la variable TERM à l'intérieur du chroot avec la même valeur qu'à l'extérieur ; cette variable est nécessaire pour que les programmes comme vim et less fonctionnent correctement. Si vous avez besoin de la présence d'autres variables, telles que CFLAGS ou CXXFLAGS, c'est le bon moment pour les initialiser de nouveau.

À partir de maintenant, il n'est plus nécessaire d'utiliser la variable LFS parce que tout ce que vous ferez sera restreint au système de fichiers LFS car le shell pense que $LFS est réellement /.

Notez que /tools/bin arrive dernier dans le PATH. Ceci signifie qu'un outil temporaire ne sera plus utilisé une fois que la version finale sera utilisée. En fait, ceci est vrai tant que le shell ne se rappelle plus les emplacements des binaires exécutés. Pour cette raison, le hachage est désactivé en passant l'option +h à bash.

Vous devez vous assurer que toutes les commandes pour le reste de ce chapitre et les chapitres suivants sont lancés à l'intérieur de l'environnement chroot. Si vous devez quitter cet environnement quelqu'en soit la raison (un redémarrage par exemple), vous devez vous rappeller de commencer par monter les systèmes de fichiers proc et devpts (discutés dans la section précédente) et d'entrer de nouveau dans chroot avant de continuer les installations.

Notez que l'invite bash dira « I have no name! » (Je n'ai pas de nom !). C'est normal car le fichier /etc/passwd n'existe pas encore.