Linux启动流程
对于Linux想必大家应该都有一定的认识,今天想和大家分享一下自己的学习笔记--关于Linux的启动流程的问题.如果了解windows 的启动过程,那么我相信Linux这一方面也应该不难!
对于下面这两个图,具体是怎么个情况??下面就允许我为大家一一介绍吧!!  


 

一、Linux启动管理
Linux启动的引导程序主要有两种,lilo,Grub;现在lilo 已经被淘汰,而Grub可以引导多种操作系统!
首先我先简单介绍一下启动过程:刚开始的时候,计算机中的BIOS进行加电自检(POST),检测一些硬件是否能正常工作,然后BIOS读取硬盘中的0柱面、0磁头、1扇区来寻找MBR记录,接下来BIOS
将控制权交给MBR 中的引导程序、引导程序读取分区表来寻找引导扇区,引导扇区中的引导程序开始加载启动的一些配置文件grub.conf和windows 中的boot.ini 类似(在后面我会介绍),接着屏幕上会出现操作系统的选项,回车选择Linux 系统后,引导程序开始加载Linux 内核,加载父进程,子进程,初始化内存……

Linux大致的启动过程就是这样,现在就开始具体的详细的过程吧
1、 GRUB的结构
第一部分:引导程序,驻留在MBR中,负责加载操作系统;
第二部分:配置文件,存储于文件系统中,记载操作系统的分布
2、GRUB的配置文件
存储位置:/boot/grub/grub.conf
利用VI 编辑打开如图:


全局配置:
Default=0 //默认进入第几个操作系统
Timeout=5 //超时等待时间(选择进入操纵系统的时间)
Splashp_w_picpath //开机的画面
Hiddenmenu //隐藏系统选择菜单
启动配置:
Title // 菜单说明
Root (hd0,0) //定义操作系统的内核所在的磁盘分区 即:第一 块磁盘的第一个分区
Kernel //加载内核 /vmlinuz-2.6.18-8.el5 内核存放位置 ro 以只读方式挂接 root=LABEL=/ 定义根的卷标
Rhgb //一图形界面方式 启动OS,
Quiet //安静模式下,启动操作系统(不会显错误信息)
二、启动流程
Linux 内核启动后,首先加载是init 进程(系统父进程),进程的配置文件 inittab,存放路径:/etc/inittab 用VI 编辑器打开,如图:


文件的结构:命令代码:运行级:命令操作:命令
运行级我们可以理解为,操作系统运行不同的环境,Linux默认有7个运行级
如图在注释中:
0 –halt (Do NOT set initdedault to this) //关机模式
1 –single user mode // 单用户模式 管理员维护模式 (以空密码进入)
2—multeruser mode without NFS //多用户模式 ,不支持NFS 文件系统 (没有网络功能)
3—full multiuser mode //多用户模式,文字界面
4—unused // 保留模式
5—X11 图形界面的完整用户模式
6—reboot (Do not set initdeault to this)
介绍完 运行级以后,我们来讨论 系统的启动流程吧!
Si::sysint:/etc/rc.d/rc.sysinit //标记 init 进程 首次读取 /etc/inittab 文件时应执行的操作 rc.sysinit 系统初始化脚本

系统初始化完成后,init 进程开始选择进入哪一个运行级
Id:5:initdefault: // 启动运行级,标识系统启动后进入哪一个运行级(LOOK:注意:该命令操作只能有一个,若在此处没有指明系统进入那一个运行级,开机时将询问用户)
系统选择指定的运行级后,接下来时下面的操作:
L0:0:wait:/etc/rc.d/rc 0 //系统进入到特定的运行级后要执行的命令
Rc 0 运行级初始化脚本
运行级初始化完成后,我们可以看到欢迎的登录的界面!
Inittab 配置文件中的其他几个选项,我也简单说一下!
Ca::ctrlaltdel:/sbin/shutdown –t3 r now //表示是否使用 热键:ctrl+alt+del 来使机器重启!
Pf::powerfail:/sbin/shutdown –f –h +2 “Power Failure;System Shutting Down ” //表示 UPS 发出断电信号后的操作,(系统将在两秒后关闭)
Pr:12345:powerokwait:/sbin/shutdown –c “Power Restored;shutdown Cancelled” // 表示UPS 付出电源恢复信号 后的操作:(系统取消关机的操作)
X:5:respawn:/etc/x11/prefdm –nodaemon //表示进程中断后立即重启!

好啦。Linux 的启动过程我已经介绍完毕,有什么错误的地方还请大家指出!!