vlambda博客
学习文章列表

centos6系统启动流程及相关配置文件

Linux系统启动流程

一、centos6系统启动流程及相关配置文件

1)BIOS自检

2)读取硬盘中MBR的boot loader(grub引导)

MBR 的硬盘的 0 柱面、0 磁头、1 扇区称为主引导扇区(也叫主引导记录 MBR)。它由三个部分组成,主引导程序、硬盘分区表 DPT(Disk Partition table)和硬盘有效标志(55AA)。


注:磁盘默认一个扇区大小为:512 字节。MBR 由以下 3 部分组成:

第一部分是:主引导程序(boot loader)占 446 个字节。主引导程序,它负责从活动分区中装载,并运行系

统引导程序。

第二部分是 Partition table 区(分区表),即 DPT,占 64 个字节,硬盘中分区有多少以及每一分区的大小都

记在其中。每个分区表项长 16 个字节,16*4=64 字节。为分区项 1、分区项 2、分区项 3、分区项 4。64 字节只

4 个分区表。

第三部分是 MBR 有效标识位,占 2 个字节,固定为 55AA。如果这个标志位 0xAA55,就认为这个是 MBR。

所以:16*4+446+2=512

3)依据 boot loader 的设定,到引导分区加载 Kernel ,Kernel 会开始侦测硬件并加载驱劢程序;

4)在硬件驱动成功后,Kernel 会主动执行 init 程序,而 init 会取得 run-level 信息;

5)init 执行 /etc/rc.d/rc.sysinit 文件来准备软件执行的作业环境 (如网络、时区等);

6)init 执行 run-level 下各个服务并启动 (script 方式);

7)init 执行开机后自动运行脚本 /etc/rc.d/rc.local 文件;

8)init 执行虚拟终端机控制程序 mingetty 来启动 login 程序,最后就等待用户登入啦;

 

相关配置文件:

启动选项配置文件:/boot/grub/grub.conf

系统启动级别:/etc/inittab

系统初始化脚本:/etc/rc.d/rc.sysinit

开机自启配置文件:/etc/rc.local(/etc/rc.d/rc.local)

 

启动对应级别下的服务如: init 3 级别

/etc/rc.d/rc3.d/(这里的服务S开头的全部开机执行;K开头的表示开机不执行,表明了关机时顺序)

rcn.d (n为1到6) 是对应于不同的 runlevel 下起不同的服务. 这些目录下都是一些符号连接, 连接到/etc/rc.d/init.d 下的一些文件.以S开头的表示要启动, 以 K 开头的不启动.例如:

more /etc/init.d/network

#! /bin/bash

#

# network Bring up/down networking

#

# chkconfig: 2345 10 90

如上, 2345 表示在runlevel 2 3 4 5 下被启动, 10是为此服务的启动顺序, 90 为关机时,关闭此服务的顺序

 

 

Centos6启动大致过程:

1)BIOS自检

2)运行系统内核并检测硬件从硬盘启动并运行系统的第一个进程init(LILO和GRUB模式)

3)init读取系统引导配置文件/etc/inittab,并根据运行级别配置服务/etc/rc.d/rc.local

 

centos6 系统缺省的运行级别

0为停机,机器关闭

1为单用户模式,就像Win下的安全模式(一般用于root密码破解或修改)

2为多用户模式,但是没有NFS支持、无网络

3为完全的多用户模式,是标准的运行级别(一般称为字符界面,工作中常用模式)

4保留(未使用)

5图形界面的模式(有网络、图形界面、支持多用户)

6为重启,运行init6机器就会重启