6.8. Заполнение /dev

6.8. Заполнение /dev

6.8.1. Создание первоначальных файлов устройств

Когда ядро загружает систему, оно требует наличия нескольких файлов устройств, обычно это устройства console и null. Создадим их запуском следующих команд:

mknod -m 600 /dev/console c 5 1
mknod -m 666 /dev/null c 1 3

6.8.2. Монтирование ramfs и заполнение /dev

Идеальный способ для заполнения /dev - это монтирование ramfs в /dev, как tmpfs и создавать там устройства при каждой загрузке. Поскольку система не была загружена, это необходимо сделать, чтобы в противном случае загрузочные скрипты могли выполниться и заполнить /dev. Начнем с монтирования /dev:

mount -n -t ramfs none /dev

Запустим установленную программу udevstart для создания первоначальных устройств, основанных на всей информации в директории /sys:

/tools/sbin/udevstart

Есть несколько ссылок и директорий, необходимых для LFS, которые не создаются Udev, поэтому создадим их здесь:

ln -s /proc/self/fd /dev/fd
ln -s /proc/self/fd/0 /dev/stdin
ln -s /proc/self/fd/1 /dev/stdout
ln -s /proc/self/fd/2 /dev/stderr
ln -s /proc/kcore /dev/core
mkdir /dev/pts
mkdir /dev/shm

В конце подмонтируем собственные виртуальные файловые системы (ядра) в только что созданные директории:

mount -t devpts -o gid=4,mode=620 none /dev/pts
mount -t tmpfs none /dev/shm

Команды mount, запущенные выше, могут выдать следующее предупреждение:

can't open /etc/fstab: No such file or directory.

Этот файл - /etc/fstab - пока не был создан, но он пока не нужен для нормального монтирования файловых систем. Раз так, предупреждение может быть проигнорировано.