Mounting the proc and devpts file systems

In order for certain programs to function properly, the proc and devpts file systems must be available within the chroot environment. The proc file system is the process information pseudo file system through which the kernel provides information about the status of the system. And the devpts file system is nowadays the most common way pseudo terminals (PTYs) are implemented. Since kernel version 2.4, a file system can be mounted as many times and in as many places as you like, thus it's not a problem that these file systems are already mounted on your host system, especially so because they are virtual file systems.

First become root, as only root can mount file systems in unusual places. Then check again that the LFS environment variable is set correctly by running echo $LFS and making sure it shows the path to your LFS partition's mount point, which is /mnt/lfs if you followed our example.

Now make the mount points for these filesystems:

mkdir -p $LFS/{proc,dev/pts}

Mount the proc file system with:

mount proc $LFS/proc -t proc

And mount the devpts file system with:

mount devpts $LFS/dev/pts -t devpts

This last command might fail with an error like:

filesystem devpts not supported by kernel

The most likely cause for this is that your host system's kernel was compiled without support for the devpts file system (you can check which file systems your kernel supports with cat /proc/filesystems, for example). A few PTYs are needed to be able to run the suites for Binutils and GCC later on. If your kernel does not support devpts, do not worry, there is another way to get them working inside the chroot environment. We'll cover this shortly in the Make_devices section.

Remember that if for any reason you stop working on your LFS, and start again later, it's important to check that these file systems are mounted again before entering the chroot environment, otherwise problems could occur.