当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > RedHat 开机起动流程

Unix/Linux
Linux中NE2000兼容网卡的安装
sis650显卡驱动自定义安装终极指南(RH80)
配置好显卡驱动Linux下玩游戏同样爽
linux设备驱动笔记:字符设备驱动
把设备驱动程序编译进嵌入式Linux内核
删除Linux引导界面的方法及注意事项
在Linux操作系统下如何开启硬盘DMA
从Linux BIOS的起源 看未来主板框架
深入浅出 Linux字符设备驱动程序解析
Linux系统启动引导程序配置文件解析
深入浅出 Linux设备驱动异步通知介绍
深入浅出 Linux设备驱动中断处理介绍
新手看招 Linux操作系统的目录结构一览
菜鸟乐园 Linux中常见文件系统格式介绍
Motorola微处理器bootloader分析与应用
实用技巧 Linux系统的经典使用技巧八则
Linux操作系统下IPTables配置方法详解
Linux系统中增加Swap分区文件步骤方法
使用Openssh工具远程管理Solaris 10
uClinux中添加用户应用程序的详细方法

Unix/Linux 中的 RedHat 开机起动流程


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 148 ::
收藏到网摘: n/a

 
# 版权宣告: 1999 Copyright OLS3 All rights reserved.

# 作者: 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 ->