7.3. Préparer les systèmes de fichiers virtuels du noyau

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}

7.3.1. Création des nœuds initiaux vers les périphériques

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 le noyau ne remplisse /dev, 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

7.3.2. Monter et peupler /dev

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

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

Maintenant montez les systèmes de fichiers virtuels du noyau qui en résultent :

mount -v --bind /dev/pts $LFS/dev/pts
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
mount -vt tmpfs tmpfs $LFS/run

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