CentOS 6系统启动流程:
一Linux系统启动流程
系统初始化流程如下:
post-->bootsequence(bios)-->bootloader(mbr)-->kernel(ramdisk文件)-->只读装载根文件系统rootfs-->init
二启动详解
POST自检:
系统接通电源时自动检测CPU,内存,主板,显卡,声卡,网卡等I/O设备,如果设备正常则进行下一启动步骤。
BOOTsequence(bios):
通过加载可选择的启动设备,启动寻找第一个引导启动的设备。
BOOTloader(MBR):硬盘的主引导记录,存在于0磁道第0扇区,共512字节。其中Bootloader占据446字节,分区表占据64字节,magicnum占据2字节。
Bootloader(内核加载器)位于第0磁道第0扇区的446字节是最前边的446字节,Bootloader的工作机制:bootloader可以访问文件系统,而内核则作为文件而存在。bootloader访问内核文件时,是将内核文件Vmlinz所在的整个分区当作根去访问的。我们常用的内核加载器是GRUB(Grand Unified Bootloader),因此由grub来加载内核.
kernel(ramdisk文件):Linux属于单核系统:Kernel+各种外围模块组成,通过grub加载内核后,内核开始自我解压并工作,通过虚拟根文件系统initrfs 调用init工作。
INIT:init
程序被内核第一个所调用,所以init的PID号为1,init调用其配置文件/etc/inittable和启动脚本/etc/init/rc#.conf,
从而启动各个子进程,执行初始化系统脚本/etc/rc.d/rc.sysinit 来初始化脚本。
INIT启动后执行的作业:
1、 读取/etc/inittab来读取默认级别;
启动级别定义如下:
运行级别(由init决定):为了系统的运行或维护等应用目的而设定;
0-6:7个级别:
0:关机
1:单用户模式:single,维护模式,为root用户无需登录
2:多用户模式,会启动网络功能,但不会启动NFS网络访问,维护模式
3:多用户模式:正常模式,文本界面,不启动图形桌面。
4:多用户模式,预留级别,与3相同
5:多用户模式:启动图形界面;
6:重启系统
默认级别: 3 ,5
/etc/inittab文件格式如下: id:3:initdefault:
2、 执行初始化系统脚本 /etc/rc.d/rc.sysinit 来初始化脚本;
a.设置主机名
b.设置欢迎信息
c.激活udev和selinux;
d.挂载/etc/fstab文件中定义的文件系统;
e.检测根文件系统,并以读写方式重新挂载根文件系统;
f.设置系统时钟;
g.激活swap设备
h.根据/etc/sysctl.conf文件设置内核参数;
i.激活lvm以及software raid设备;
j.加载额外设备的驱动程序;
k.清理操作;
3、 然后执行/etc/rc.d/rc#.d 脚本,默认会读取/etc/rc.d/rc3.d/下的所有脚本,来控制系统启动的时候启动或者关闭哪些服务。这里面的脚本大致分为以S 开头的和以 K 开头的脚本。 S 代表开机时启动的,K 表示开机时不启动。K##*: ##运行次序,数字越小越先运行;数字越小的服务,通常为依赖到别的服务;
S##*:数字越小的服务,通常为被依赖的服务;
chkconfig命令:查看每个服务对应级别的开关,以及设置相关服务对应级别上的开关;
增加服务:chkconfig–add srv_name 可以将自己写的一些脚本,让此命令统一管理。
删除服务:chkconfig–del srv_name 将服务删除,意思就是服务不由chkconfig这种机制来管理
chkconfigsrv_name {on|off} 设置服务开机是否自启动,默认管理的级别是2345.
--level 2345等,指定默认级别,可以与其他选项一起使用
注意:正常级别下,最后启动的一个服务:S99local指向了/etc/rc.d/rc.local脚本,且有又想开机时自动运行的命令,可直接放置于/etc/rc.d/rc.local文件中;
4、执行/etc/rc.d/rc.local脚本,此脚本是启动过程中最后启动的一个脚本,然后会执行 /bin/login 登录用户
总结: /sbin/init-->就是读取/etc/inittab文件-->设置默认运行级别-->运行系统初始化脚本,完成系统初始化-->关闭对应下需要关闭的服务,启动需要启动的服务-->设置登录终端
本文出自 “前进的轨迹” 博客,请务必保留此出处http://lisoy79.blog.51cto.com/10836537/1733265
原文地址:http://lisoy79.blog.51cto.com/10836537/1733265