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 - пока не был создан, но он пока не нужен для нормального монтирования файловых систем. Раз так, предупреждение может быть проигнорировано.