Приложения, работающие в пользовательском пространстве, используют различные файловые системы, созданные ядром, для взаимодействия с самим ядром. Эти файловые системы являются виртуальными: для них не используется дисковое пространство. Содержимое файловых систем находится в памяти. Эти файловые системы должны быть смонтированы в дереве каталогов $LFS, чтобы приложения могли найти их в среде chroot.
Начните с создания каталогов, в которые будут смонтированы эти виртуальные файловые системы:
mkdir -pv $LFS/{dev,proc,sys,run}
Во время обычной загрузки ядро автоматически монтирует файловую
систему devtmpfs
в каталог
/dev
; ядро создает узлы устройств в
этой виртуальной файловой системе в процессе загрузки или при
первом обнаружении устройства, или доступе к нему. Демон udev может
изменять владельца или разрешения узлов устройств, созданных ядром,
или создавать новые узлы устройств или символические ссылки, чтобы
облегчить работу разработчиков дистрибутива или системных
администраторов. (Подробности смотрите в Раздел 9.3.2.2, «Создание
узла устройства».) Если ядро хоста поддерживает devtmpfs
, мы можем просто смонтировать
devtmpfs
в $LFS/dev
и положиться на ядро для его заполнения.
Но в некоторых ядрах хоста отсутствует поддержка devtmpfs
, эти хост-дистрибутивы используют
разные методы для создания содержимого /dev
. Таким образом, единственный независимый от
хоста способ заполнить каталог $LFS/dev
- это привязка к каталогу /dev
хост-системы. Связное монтирование - это
особый тип монтирования, который делает дерево каталога или файл
видимым в каком-либо другом месте. Для этого используйте следующую
команду:
mount -v --bind /dev $LFS/dev
Теперь смонтируйте оставшиеся виртуальные файловые системы:
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
В некоторых хост-системах /dev/shm
является символической ссылкой на /run/shm
. /run tmpfs был смонтирован выше,
поэтому нужно создать только каталог.
В других хост-системах /dev/shm
является точкой монтирования для tmpfs. В этом случае монтирование
/dev приведет только к созданию /dev/shm как каталога в среде
chroot. В этой ситуации мы должны явно смонтировать tmpfs:
if [ -h $LFS/dev/shm ]; then mkdir -pv $LFS/$(readlink $LFS/dev/shm) else mount -t tmpfs -o nosuid,nodev tmpfs $LFS/dev/shm fi