16.5 Linux /sbin/init

网友投稿 686 2022-05-28

在内核加载完毕,并完成硬件检测与驱动程序加载后,此时主机硬件已经准备完毕,内核会主动呼叫第一个进程,也就是 /sbin/init,此配置文件最主要的功能就是准备软件执行的环境,包括系统的主机名、网络设定、语言、文件系统格式及其他服务的启动等。

这里和 CentOS 5.x 系统相比也有较大变化。在 CentOS 5.x 系统中,主要通过 init 进程的配置文件 /etc/inittab 来设定系统,并启动 linux。但是在 CentOS 6.x 系统中,由于用 Upstart 启动服务来替换以前的 init,所以在 /etc/inittab 配置文件中只能定义系统的默认运行级别,而其他的功能是靠 /etc/init/ 目录中的其他配置文件实现的。

大家可以把 /etc/init/ 目录中的配置文件看成以前 /etc/inittab 这个文件功能的分拆。

本章开头提到,由 /sbin/init 进程可通过 /etc/init/rcS.conf 配置文件,分别找到 /etc/rc.d/rc.sysinit 配置文件和 /etc/inittab 配置文件,前者用于初始化系统,配置计算机的初始环境;后者用于确定系统的默认运行级别。

接下来,先介绍 /etc/rc.d/rc.sysinit 配置文件。如果我们使用 Vim 查看 /etc/rc.d/rc.sysinit 配置文件,就会发现这个这个配置文件主要进行了以下几项工作:

获得网络环境和主机类型;

测试设备:除了挂载内存设备 /proc 之外,还会主动侦测系统上是否具有 usb 设备,如果有,则会主动加载 usb 的驱动程序,并尝试挂载 usb 文件系统;

开机启动画面 Plymouth(代替了以往的 RHGB);

判断是否启用 SELinux;

显示开机过程中的欢迎画面;

初始化硬件;

用户自定义模块的加载,用户可以在 /etc/sysconfig/modules/*.modules 加入自订的模块,则此时会被加载到系统当中;

配置内核的参数,系统会主动去读取 /etc/sysctl.conf 这个文件的配置参数,使内核的功能成为我们想要的样子。

设置主机名。

同步存储器。

设备映射器及相关的初始化。

初始化软件磁盘阵列 (RAID)。

初始化 LVM 的文件系统功能。

检验磁盘文件系统 (fsck)。

设置磁盘配额 (quota)。

16.5 Linux /sbin/init

重新以可读写模式挂载系统磁盘。

更新 quota (非必要)。

启动系统虚拟随机数生成器。

配置机器(非必要)。

清除开机过程中的临时文件。

创建 ICE 目录。

启动交换分区(swap)。

将开机信息写入 /var/log/dmesg 文件中。

在以上过程中,比较值得注意的是自定模块的加载。在 CentOS 中,如果我们想要加载核心模块的话,就可以将整个模块写入到 /etc/sysconfig/modules/*.modules 中。当然,此过程并不是必须的,通常我们的默认模块已经够用,除非对硬件太新,不得不自己加载模块,否则无需刻意添加任何模块。

可以看到,/etc/rc.d/rc.sysinit 配置文件已经将基本的系统配置数据都写好了,我们可以查询 /var/log/dmesg 文件或使用 dmesg 命令查看系统在启动时到底发生了什么。当然,我们也可以通过这个命令来看看 Linux 服务器的硬件信息。

有关 /etc/inittab 配置文件的内容,放到了下节进行详细介绍。

Linux

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SQLite数据库损坏与修复
下一篇:电感缺陷视觉检测案例实践 |【玩转华为云】
相关文章