8.3. Monter les systèmes de fichiers virtuels du noyau

[Remarque]

Remarque

Vous devriez exécuter les commandes du reste de ce livre en tant qu'utilisateur root. Vérifiez que ${CLFS} est configuré dans l'environnement de l'utilisateur root avant de continuer.

Différents systèmes de fichiers exportés par le noyau sont utilisés pour communiquer avec le noyau. Ces systèmes de fichiers sont virtuels par le fait qu'aucun espace disque n'est utilisé pour eux. Le contenu de ces systèmes de fichiers réside en mémoire.

Commencez en créant les répertoires dans lesquels les systèmes de fichiers seront montés :

mkdir -pv ${CLFS}/{dev,proc,sys}

Maintenant, montez les systèmes de fichiers :

mount -vt proc proc ${CLFS}/proc
mount -vt sysfs sysfs ${CLFS}/sys

Rappelez-vous que si, pour une quelconque raison, vous vous arrêtez de travailler sur le système CLFS et recommencez plus tard, il est important de vérifier que ces systèmes de fichiers sont à nouveau montés avant d'entrer dans l'environnement chroot.

Deux nœuds de périphériques, /dev/console et /dev/null, doivent être présents sur le système de fichiers. Ils sont exigés par le noyau même avant le démarrage d'Eudev très tôt dans le processus d'amorçage, donc nous les créons ici :

mknod -m 600 ${CLFS}/dev/console c 5 1
mknod -m 666 ${CLFS}/dev/null c 1 3

Une fois que le système est complet et qu'il démarre, le reste des nœuds de périphériques sont créés par le paquet Eudev. Comme ce paquet n'est pas disponible pour nous maintenant, nous devons prendre en charge ces étapes pour fournir les nœuds de périphérique sur le système de fichiers CLFS. Nous allons utiliser l'option « bind » dans la commande mount pour faire apparaître la structure du /dev de notre système hôte dans le nouveau système de fichiers CLFS :

mount -v -o bind /dev ${CLFS}/dev

Des systèmes de fichiers supplémentaires seront bientôt montés à l'intérieur de l'environnement chroot. Pour maintenir l'hôte à jour, efcectuez un « faux montage » pour chacun d'eux maintenant :

if [ -h ${CLFS}/dev/shm ]; then
  link=$(readlink ${CLFS}/dev/shm)
  mkdir -p ${CLFS}/$link
  mount -f -vt tmpfs shm ${CLFS}/$link
  unset link
else
  mount -f -vt tmpfs shm ${CLFS}/dev/shm
fi
mount -f -vt devpts -o gid=5,mode=620 devpts ${CLFS}/dev/pts