Différents systèmes de fichiers exportés par le noyau sont utilisés pour communiquer avec le noyau lui-même. Ces systèmes de fichiers sont virtuels du 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 $LFS/{dev,proc,sys,run}
Quand le noyau démarre le système, il a besoin de la présence de
quelques fichiers de périphériques, en particulier les
périphériques console
et null
. Les nœuds de périphérique doivent être
créés sur le disque dur afin d'être disponible avant que
udevd n'ait été
démarré et aussi quand Linux est démarré avec init=/bin/bash
. Créez les
périphériques en exécutant les commandes suivantes :
mknod -m 600 $LFS/dev/console c 5 1 mknod -m 666 $LFS/dev/null c 1 3
La méthode recommandée pour peupler le répertoire /dev
de périphériques est de monter un système de
fichiers virtuel (comme tmpfs
) sur
le répertoire /dev
, et d'autoriser la
création dynamique des périphériques sur le système de fichiers
virtuel une fois qu'ils sont détectés ou que quelque chose tente
d'y accéder. La création de périphériques est généralement faite
par Udev lors du démarrage. Comme ce nouveau système ne contient
pas encore Udev et n'a pas encore été démarré, il est nécessaire de
monter et de peupler /dev
manuellement. Cela se fait en montant en double le répertoire
/dev
du système hôte. Le montage en
double est un type spécial de montage qui vous permet de créer le
miroir d'un répertoire ou d'un point de montage à un autre endroit.
Utilisez la commande suivante pour réaliser cela :
mount -v --bind /dev $LFS/dev
Maintenant montez les systèmes de fichiers virtuels du noyau qui en résultent :
mount -vt devpts devpts $LFS/dev/pts -o gid=5,mode=620 mount -vt proc proc $LFS/proc mount -vt sysfs sysfs $LFS/sys mount -vt tmpfs tmpfs $LFS/run
Voici la signification des options de montage de devpts :
gid=5
Cela garantit que tous les nœuds de périphérique créés par
devpts appartiennent au groupe dont l'ID est 5. C'est l'ID
que nous utiliserons plus tard pour le groupe tty
. Nous utilisons l'ID de groupe au
lieu du nom, car il se pourrait que le système hôte utilise
un ID différent pour son groupe tty
.
mode=0620
Cela garantit que tous les nœuds de périphérique créés par devpts ont le mode 0620 (lecture et écriture par l'utilisateur, écriture par le groupe). Combinée à l'option ci-dessus, cela garantit que devts créera des nœuds de périphérique correspondant aux exigences de grantpt(), c'est-à-dire que le binaire d'aide pt_chown de Glibc (qui n'est pas installé par défaut) n'est pas nécessaire.
Dans certains systèmes hôtes, /dev/shm
est un lien symbolique vers /run/shm
. Le tmpfs /run a été monté tout à
l'heure, donc vous ne devez créer un répertoire que dans ce cas
précis.
if [ -h $LFS/dev/shm ]; then mkdir -pv $LFS/$(readlink $LFS/dev/shm) fi