RedHat 开机起动流程
RedHat 开机起动流程,RedHat 开机起动流程
# 作者: OLS3 (卧龙小三)
# 本讲义仅供台南县 87 学年度网路管理进阶研习班上课之用.
# 学员可保存一份自用, 供日後网管时参考备查.
# 作者保有一切形式的着作权.
# 欲作其它用途者, 需经作者授权同意.
# 未经作者授权同意之前, 请勿转载刊登.
RedHat 开机起动流程 :
1. LILO 取得控制权.
PC 起动时, 会读取开机磁碟第一条 cylinder 的第一个 sector(此即 MBR), 然後它会试着将读取到的程式码载入记忆体中并且予以执行. 这些程式码, 就是 LILO. 记不记得, 当初我们安装时, 曾选择将 LILO 放入MBR 呢?!
2. 载入 kernel
Red Hat 的 kernel 放在 /boot 中, 通常档名类似 vmlinuz-2.0.34-0.6, vmlinuz-2.2.5-15
3. kernel 执行第一支程式 /sbin/init
init 会根据 /etc/inittab 这个 initialization table 来决定不同的 run-level 应该如何设定系统.
Red Hat 的 run-level 有以下 7 层: (定义在 /etc/inittab 中)
0 --- halt : 关机 level
1 --- Single user mode : 单人模式, 如果你忘记 root 密码, 这是补救的方式之一.
2 --- Multiuser, without NFS : 多人使用模式, 但没有 NFS 功能, 如果安装时没有使用网路功能, 那麽 level 3 是一样的.
3 --- Full multiuser mode : 这是预定的 run-level
4 --- unused : 这个 run-level 目前尚未定义使用
5 --- X11 : X Windows 使用的 level
6 --- reboot : 重新开机时使用的 level
Linux 系统开机时, 最重要的观念便是这个 run-level , run-level 可以说是 Linux 的系统状态(system states of Linux), 根据不同的情况进入不同的系统状态, 以执行不同的初始化动作.
另外一点, Linux 虽然融合了 System V 及 BSD 的特色, 但在开机起动的部份, 比较接近 System V 的作法, 并且这种方式几乎已成为 Linux 世界的一项标准. 因为它具有容易使用, 功能强大以及富有弹性的特色.
其目录档案结构如下:
/etc/rc.d 中包含:
目录 script 档案
/etc/rc.d/init.d
/etc/rc.d/rc0.d
/etc/rc.d/rc1.d
/etc/rc.d/rc2.d
/etc/rc.d/rc3.d
/etc/rc.d/rc4.d
/etc/rc.d/rc5.d
/etc/rc.d/rc6.d
rc
rc.local
rc.sysinit
rc0.d 便是 run-level 0 起动 script 存放的目录, rc3.d 是 run-level 3, 其它依此类推
不过, rc0.d ~ rc6.d 中的 script 并不是各自独立的, 其实它们都是 symbolic file, 连结到 /etc/rc.d/init.d 中的 script.
比如 rc3.d 目录中的档案列表如下:
total 0
lrwxrwxrwx 1 root root 20 May 23 15:56 K15postgresql - ../init.d/postgresql
lrwxrwxrwx 1 root root 17 May 23 15:56 K20rusersd - ../init.d/rusersd
lrwxrwxrwx 1 root root 15 May 23 15:56 K20rwhod - ../init.d/rwhod
lrwxrwxrwx 1 root root 16 May 23 15:56 K55routed - ../init.d/routed
lrwxrwxrwx 1 root root 17 May 23 15:56 S01kerneld ->