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

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

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 ]; thenmkdir -pv $LFS/$(readlink $LFS/dev/shm)
fi

创建者:Gerard Beekmans
编辑者:Matthew Burgess 和 Armin K.
翻译团队:LCTT
译者/校对:zpl1025,wxy
原文链接

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

  1. 《Linux From Scratch》第三部分:构建LFS系统 第六章:安装基本的系统软件- 6.69. Vim-7.4...

    Vim 软件包包含了一个强大的文本编辑器. 大概构建时间: 1.0 SBU 需要磁盘空间: 139 MB Vim 的替代品 如果你钟情于其它的编辑器 -比如 Emacs.Joe, 或 Nano-请参考 ...

  2. 《Linux From Scratch》第三部分:构建LFS系统 第六章:安装基本的系统软件- 6.47. Gawk-4.1.1...

    Gawk 软件包包含用于操作文本文件的程序. 大概编译时间: 0.3 SBU 需要磁盘空间: 39 MB 6.47.1. 安装 Gawk 准备编译 Gawk: ./configure --prefix ...

  3. 《Linux From Scratch》第三部分:构建LFS系统 第六章:安装基本的系统软件- 6.12. File-5.22...

    File 软件包包括一个判断给定的某个或某些文件文件类型的工具. 大概编译时间: 0.1 SBU 需要磁盘空间: 16 MB 6.12.1. 安装 File 准备编译 File: ./configur ...

  4. 《Linux From Scratch》第三部分:构建LFS系统 第六章:安装基本的系统软件- 6.40. Expat-2.1.0...

    Expat 软件包包含一个用于解析 XML 的面向流的 C 库. 大概编译时间: 0.1 SBU 需要磁盘空间: 11 MB 6.40.1. 安装 Expat 准备编译 Expat: ./config ...

  5. 《Linux From Scratch》第三部分:构建LFS系统 第七章:基本系统配置- 7.9. 创建 /etc/shells 文件...

    shells 文件是当前系统所有可用 shell 的列表文件.应用程序通过读取它可以知道需要使用的 shell 是否有效.每行指定一个可用的 shell,且需要为绝对路径. 例如,当非特权用户想要使用 ...

  6. alfs学习笔记-自动化构建lfs系统

    一名linux爱好者,记录构建Linux From Scratch的过程 经博客园-骏马金龙前辈介绍,开始接触学习lfs,用博客记录学习笔记,如有写的不恰当的地方,望多多指正. 笔记中只是记录一些问题 ...

  7. 《深入理解 Spring Cloud 与微服务构建》第十六章 Spring Boot Security 详解

    <深入理解 Spring Cloud 与微服务构建>第十六章 Spring Boot Security 详解 文章目录 <深入理解 Spring Cloud 与微服务构建>第十 ...

  8. Linux(b站视频兄弟连)自学笔记第六章——软件包管理

    Linux(b站视频兄弟连)自学笔记第六章--软件包管理 简介 软件包分类 RPM命令管理 包命令与依赖性 安装升级与卸载 查询 校验和文件提取 yum在线管理 IP地址的配置和网络yum源 yum命 ...

  9. 《数据库原理与应用》(第三版)书后上机练习题——第六章

    <数据库原理与应用>(第三版)书后上机练习题--第六章 书上给的三个表的数据 题目错误的地方 所有关于VB课的题目,这里可以选择把表中的Java课改成VB课,或者把题目中的VB课改为Jav ...

最新文章

  1. 14 款命令行常用工具的替代品!
  2. 数字图像处理笔记二 - 图片缩放(最近邻插值(Nearest Neighbor interpolation))
  3. sudo: unable to resolve host ubuntu提示的解决
  4. 动态代理的两种方式_动态代理是基于什么原理?
  5. 开始使用Lumen吧,3分钟搞定登陆认证
  6. {{view 视图层}}微信小程序
  7. c# 获取电脑硬件信息通用查询类[测试通过]
  8. 内存管理检查方法和工具
  9. BZOJ 1911: [Apio2010]特别行动队 [斜率优化DP]
  10. 08系统装iss_安全信息系统| ISS | 第1部分
  11. 阿里云机器的JVM内存调优经历(菜鸟必看,大神请绕道)
  12. word强调文字颜色在哪,强调文字颜色2 word2010如何将文字设置成红色,强调文
  13. 3.JDBC基础代码书写
  14. 如何用计算机还原魔方,不借助计算机 不借助公式 怎么自己转出魔方?
  15. 几种漂亮边框制作教程
  16. Java 海康SDK透明通道建立(485透传)
  17. 闯关创业板的宝宝巴士:早教公司的面子,广告公司的里子
  18. Audio的谐波失真
  19. win10 pip安装mmcv-full
  20. Wamp5与Moodle安装

热门文章

  1. 《课程的反思与重建--我们需要什么样的课程观》之心得体会
  2. 如何強迫 .Net 應用程式輸出英文的例外訊息
  3. 广告片断大收集+穿帮镜头
  4. 【python教程入门学习】PyCharm 如何使用
  5. mysql普通索引标记_Mysql 索引
  6. directx 双缓冲 运动 闪烁_24期0利率 | BMW超值福袋开启“双11”购车狂欢节!!
  7. eclipse新建python文件夹_eclipse 如何创建python文件
  8. 初级c 语言题库,c 语言题库.doc
  9. 学习一个 Linux 命令:sort 命令
  10. 【哈渡谱】带你玩转Hadoop之《主机映射、镜像挂载与SSH免密篇》