init 处理系统初始化流程 (/etc/rc.d/rc.sysinit)
还记得上面提到 /etc/inittab 里头有这一句‘ si::sysinit:/etc/rc.d/rc.sysinit ’吧? 这表示:‘我开始载入各项系统服务之前,得先做好整个系统环境,我主要利用 /etc/rc.d/rc.sysinit 这个 shell script 来设定好我的系统环境的。’够清楚了吧? 所以,我想要知道到底 FC4 开机的过程当中帮我进行了什么动作, 就得要仔细的分析 /etc/rc.d/rc.sysinit 啰。
Tips:
老实说,这个档案的档名在各不同的 distributions 当中都不相同, 例如 SuSE server 9 就使用 /etc/init.d/boot 与 /etc/init.d/rc 来进行的。 所以,你最好还是自行到该档案去察看一下系统的工作喔! ^_^
/etc/rc.d/rc.sysinit 主要的工作大抵有这几项:
1. 取得网路环境与主机类型:
首先读取网路设定档 /etc/sysconfig/network ,取得主机名称与预设通讯闸 (gateway) 等网路环境。
2. 测试与挂载记忆体装置 /proc 及 USB 装置 /sys:
除挂载记忆体装置 /proc 之外,还会主动侦测系统上是否具有 usb 的装置, 若有则会主动载入 usb 的驱动程式,并且尝试挂载 usb 的档案系统。
3. 决定是否启动 SELinux :
近期以来,很多 distributions 都加入了美国国家安全局发展的 Security Enhance Linux 套件, 这个 SELinux 可以更加强化 Linux 操作环境的安全性,不过,由于安全挂帅, 对于新手来说,不是很容易上手。因此,我们才会建议大家先不要启动啊。无论如何, 在这个阶段我们可以分析 SELinux 是否要启动。
4. 周边设备的侦测与 Plug and Play (PnP) 参数的测试:
根据核心在开机时侦测的结果 (/proc/sys/kernel/modprobe ) 开始进行 ide / scsi / 网路 / 音效 等周边设备的侦测,以及利用以载入的核心模组进行 PnP 装置的参数测试。
5. 使用者自订模组的载入
使用者可以在 /etc/sysconfig/modules/*.modules 加入自订的模组, 则此时会被载入到系统当中喔!
6. 载入核心的相关设定:
系统会主动去读取 /etc/sysctl.conf 这个档案的设定值,使核心功能成为我们想要的样子。
7. 设定系统时间 (clock):
8. 设定终端机 (console) 字形:
9. 设定 RAID 与 LVM 等硬碟功能:
10. 以 fsck 检验磁碟档案系统:
11. 进行磁碟配额 quota 的转换 (非必要):
12. 重新以可读取模式挂载系统磁碟:
13. 启动 quota 功能:
14. 启动系统乱数装置 (产生乱数功能):
15. 清除开机过程当中的暂存档案:
16. 将开机相关资讯载入 /var/log/dmesg 档案中。
如此一来,在 /etc/rc.d/rc.sysinit 就已经将基本的系统设定资料都写好了,也将系统的资料设定完整! 而如果你想要知道到底开机的过程中发生了什么事情呢?那么就使用 dmesg 就可以知道啰。 另外,基本上,在这个档案当中所进行的很多工作的预设设定档,其实都在 /etc/sysconfig 当中呢! 所以,请记得将 /etc/sysconfig 内的档案好好的瞧一瞧喔! ^_^
在这个过程当中,比较值得注意的是自订模组的载入!在 FC4 当中,如果我们想要载入核心模组的话, 可以将整个模组写入到 /etc/sysconfig/modules/*.modules 当中,在该目录下, 只要记得档名最后是以 .modules 结尾即可。 这个过程是非必要的,因为我们目前的预设模组实在已经很够用了,除非是您的主机硬体实在太新了, 非要自己载入新的模组不可,否则,在经过 /etc/rc.d/rc.sysinit 的处理后, 你的主机系统应该是已经跑得很顺畅了啦!就等著你将系统相关的服务与网路服务启动啰!
阅读(1751) | 评论(0) | 转发(0) |