《Linux From Scratch》第三部分:构建LFS系统 第六章:安装基本的系统软件- 6.2. 准备虚拟内核文件系统-阿里云开发者社区

开发者社区> 行者武松> 正文

《Linux From Scratch》第三部分:构建LFS系统 第六章:安装基本的系统软件- 6.2. 准备虚拟内核文件系统

简介:
+关注继续查看

         内核会挂载几个文件系统用于自己和用户空间程序交换信息。这些文件系统是虚拟的,并不占用实际磁盘空间,它们的内容会放在内存里。

开始先创建将用来挂载文件系统的目录:

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

6.2.1. 创建初始设备节点

在内核引导系统的时候,它依赖于几个设备节点,特别是 consolenull 两个设备。这些设备节点需要创建在硬盘上,这样在 udevd 启动之前它们也仍然有效,特别是在 Linux 使用init=/bin/bash 参数启动的时候。运行下面的命令创建这几个设备节点:

mknod -m 600 $LFS/dev/console c 5 1
mknod -m 666 $LFS/dev/null c 1 3

6.2.2. 挂载和激活 /dev

通常激活 /dev 目录下设备的方式是在 /dev目录挂载一个虚拟文件系统(比如 tmpfs),然后允许在检测到设备或打开设备时在这个虚拟文件系统里动态创建设备节点。这个通常是在启动过程中由 Udev 完成。由于我们的新系统还没有 Udev 而且也没有被引导启动,有必要手动挂载和激活 /dev 目录。这可以通过绑定挂载宿主机系统的 /dev 目录实现。绑定挂载是一种特殊的挂载模式,它允许在另外的位置创建某个目录或挂载点的镜像。运行下面的命令来实现:

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

6.2.3. 挂载虚拟文件系统

现在挂载剩下的虚拟内核文件系统:

mount -vt devpts devpts $LFS/dev/pts -o gid=5,mode=620
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
mount -vt tmpfs tmpfs $LFS/run

devpts 挂载选项的含义:

gid=5

这个选项会让 devpts 创建的所有设备节点属主的组 ID 都是 5。这是我们待会将要指定给 tty 组的 ID。现在我们先用 ID 代替组名,因为宿主机系统可能会为它的 tty 组分配了不同的 ID。

mode=0620

这个选项会让 devpts 创建的所有设备节点的属性是 0620(属主用户可读写,组成员可写)。和上一个选项同时使用,可以保证 devpts 所创建的设备节点能满足 grantpt() 函数的要求,这意味着不需要 Glibc 的 pt_chown 帮助程序(默认没有安装)了。

在某些宿主机系统里,/dev/shm 是一个指向 /run/shm 的软链接。这个 /run 下的 tmpfs 文件系统已经在之前挂载了,所以在这里只需要创建一个目录。

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
自定义平台决定在线CRM系统软件未来
本文讲的是自定义平台决定在线CRM系统软件未来,从发展态势来看,当下主流的在线CRM厂商除了进行产品的更新和补强之外,都把主要的精力放在了提升产品定制能力上。这种定制不仅仅是针对产品的配置调整而言,更多的是着眼于提供二次开发功能,从而令用户可以最大限度地操纵产品特性。
1305 0
relink:在Linux/UNIX平台上relink Oracle软件(转)
当操作系统升级后、操作系统打完补丁后、安装完Oracle补丁之后和relink过程中出现问题时,都会用到relink方法来保证Oracle软件的正常使用。本文介绍一下relink方法的使用。   1.以oracle用户登录操作系统[root@secdb ~]# su - oracleora11g@secdb /home/oracle$ 2.
816 0
Linux内核分析(四)----进程管理|网络子系统|虚拟文件系统|驱动简介
原文:Linux内核分析(四)----进程管理|网络子系统|虚拟文件系统|驱动简介 Linux内核分析(四) 两天没有更新了,上次博文我们分析了linux的内存管理子系统,本来我不想对接下来的进程管理子系统、网络子系统、虚拟文件系统在这个阶段进行分析的,但是为了让大家对内核有个整体的把握,今天还是简单的介绍一下剩余的几个子系统,我们对这几个子系统的分析,只要了解其作用和部分内容即可,不必深究,等我们写上几个驱动,到时候按照驱动再来分析这几个子系统我们就清晰多了。
947 0
+关注
行者武松
杀人者,打虎武松也。
17142
文章
2569
问答
文章排行榜
最热
最新
相关电子书
更多
《Nacos架构&原理》
立即下载
《看见新力量:二》电子书
立即下载
云上自动化运维(CloudOps)白皮书
立即下载