The commands in the remainder of the book should be run as the
root
user. Check that ${CLFS} is
set in the root
user’s
environment before proceeding.
Various file systems exported by the kernel are used to communicate to and from the kernel itself. These file systems are virtual in that no disk space is used for them. The content of the file systems resides in memory.
Begin by creating directories onto which the file systems will be mounted:
mkdir -pv ${CLFS}/{dev,proc,run,sys}
Two device nodes, /dev/console
and
/dev/null
, are required to be present
on the file system. These are needed by the kernel even before
starting Udev early in the boot process, so we create them here:
mknod -m 600 ${CLFS}/dev/console c 5 1 mknod -m 666 ${CLFS}/dev/null c 1 3
Once the system is complete and booting, the rest of our device nodes
will be created by the kernel's devtmpfs
file system. For now though, we will
just use the “bind” option in
the mount command to make our host system's /dev
structure appear in the new CLFS file system:
mount -v -o bind /dev ${CLFS}/dev
Now mount the remaining file systems:
mount -vt devpts -o gid=5,mode=620 devpts ${CLFS}/dev/pts mount -vt proc proc ${CLFS}/proc mount -vt tmpfs tmpfs ${CLFS}/run mount -vt sysfs sysfs ${CLFS}/sys
On some host systems, /dev/shm
is a
symbolic link to /run/shm
. If it is,
create a directory in /run
:
[ -h ${CLFS}/dev/shm ] && mkdir -pv ${CLFS}/$(readlink ${CLFS}/dev/shm)
Remember that if for any reason you stop working on the CLFS system and start again later, it is important to check that these file systems are mounted again before entering the chroot environment.