7.3. 准备虚拟内核文件系统

内核对外提供了一些文件系统,以便自己和用户空间进行通信。它们是虚拟文件系统,并不占用磁盘空间,其内容保留在内存中。

首先创建这些文件系统的挂载点:

mkdir -pv $LFS/{dev,proc,sys,run}

7.3.1. 挂载和填充 /dev

在正常的引导过程中,内核自动挂载 devtmpfs/dev,并允许在设备被发现或访问时动态地创建设备节点。设备节点通常由内核和 Udev 在系统引导时创建。然而,我们的新系统还没有 Udev,也没有经过引导过程,因此必须手工挂载和填充 /dev。这可以通过绑定挂载宿主系统的 /dev 目录来实现。绑定挂载是一种特殊挂载类型,它允许在另外的位置创建某个目录或挂载点的映像。运行以下命令进行绑定挂载:

mount -v --bind /dev $LFS/dev

7.3.2. 挂载虚拟内核文件系统

现在挂载其余的虚拟内核文件系统:

mount -v --bind /dev/pts $LFS/dev/pts
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
mount -vt tmpfs tmpfs $LFS/run

在某些宿主系统上,/dev/shm 是一个指向 /run/shm 的符号链接。我们已经在 /run 下挂载了 tmpfs 文件系统,因此在这里只需要创建一个目录。

if [ -h $LFS/dev/shm ]; then
  mkdir -pv $LFS/$(readlink $LFS/dev/shm)
fi