When the kernel boots the system, it requires the presence of a few device nodes, in particular the console and null devices. The device nodes will be created on the hard disk so that they are available before udev has been started, and additionally when Linux is started in single user mode (hence the restrictive permissions on console). Create the devices by running the following commands:
mknod -m 600 /dev/console c 5 1 mknod -m 666 /dev/null c 1 3
The recommended method of populating the /dev directory with devices is to mount a virtual filesystem (such as tmpfs) on the /dev directory, and allow the devices to be created dynamically on that virtual filesystem as they are detected or accessed. This is generally done during the boot process. Since this new system has not been booted, it is necessary to do what the LFS-Bootscripts package would otherwise do by mounting /dev:
mount -nvt tmpfs none /dev
The Udev package is what actually creates the devices in the /dev directory. Since it will not be installed until later on in the process, manually create the minimal set of device nodes needed to complete the building of this system:
mknod -m 622 /dev/console c 5 1 mknod -m 666 /dev/null c 1 3 mknod -m 666 /dev/zero c 1 5 mknod -m 666 /dev/ptmx c 5 2 mknod -m 666 /dev/tty c 5 0 mknod -m 444 /dev/random c 1 8 mknod -m 444 /dev/urandom c 1 9 chown -v root:tty /dev/{console,ptmx,tty}
There are some symlinks and directories required by LFS that are created during system startup by the LFS-Bootscripts package. Since this is a chroot environment and not a booted environment, those symlinks and directories need to be created here:
ln -sv /proc/self/fd /dev/fd ln -sv /proc/self/fd/0 /dev/stdin ln -sv /proc/self/fd/1 /dev/stdout ln -sv /proc/self/fd/2 /dev/stderr ln -sv /proc/kcore /dev/core mkdir -v /dev/pts mkdir -v /dev/shm
Finally, mount the proper virtual (kernel) file systems on the newly-created directories:
mount -vt devpts -o gid=4,mode=620 none /dev/pts mount -vt tmpfs none /dev/shm
The mount commands executed above may result in the following warning message:
can't open /etc/fstab: No such file or directory.
This file—/etc/fstab—has not been created yet but is also not required for the file systems to be properly mounted. As such, the warning can be safely ignored.