CentOS开机流程:

POST--Boot sequence--Boot loader---Kernel(Ramdisk)---rootfs---switch-------/sbin/init




POST:加电

计算机加电后,CPU到ROM上寻找代码,并且这个过程扫描计算机的硬件。如果一切正常,进入下一步


Boot sequence:选择分区引导

ROM上存放着BIOS(Boot Input/Output System),根据对BIOS的设置,引导第一各有引导程序的设备启动它。


Boot loader:引导加载器

存在磁盘的第一个扇区上存放着MBR(Master Boot Record字节)占据着512字节,其中前面446字节存放着Boot loader.在Linux下Boot loader常用的是Grub,

Grub采用的工作模式是:

1 stage:bootload,加载到2stage .

1.5 stage :位于mbr之后的扇区,提供了文件系统驱动 2nd:位于/boot/grub下,加载内核。

2 stage:位于/boot/grub


Kernel:内核加载

Kernel是单核设计,把所有功能集成于一个程序。

Kernel被加载到内存后展开,在ramdisk的帮助下访问文件系统

内核展开后进行自身初始化:

1.检测所有可以识别得到的硬件设备(有可能借助于ramdisk)

2.加载硬件的驱动

3.以只读的方式挂载文件系统

4.运行/sbin/init


/sbin/init:启动init完成最后工作

1.init调用其配置文件/etc/inittable


[root@localhost rc3.d]# tail -10 /etc/inittab

# Default runlevel. The runlevels used are:

#   0 - halt (Do NOT set initdefault to this)

#   1 - Single user mode

#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)

#   3 - Full multiuser mode

#   4 - unused

#   5 - X11

#   6 - reboot (Do NOT set initdefault to this)

id:3:initdefault:


0:关机shutdown

1:单用户模式 single user root用户,无需认证,维护模式;

2.多用户模式(multi user),会启动网络功能,但不会启动NFS维护模式

3.多用户模式,完全功能模式,文本界面

4:预留模式:目前无特别使用目的,但习惯以同3级别功能使用

5.多用户模式,完全功能模式,图形界面

6.重启,reboot


模式进行切换: init # (0-6)


2.进行系统初始化 /etc/rc.d/rc.sysinit

(1) 设置主机名;

(2) 设置欢迎信息;

(3) 激活udev和selinux;

(4) 挂载/etc/fstab文件中定义的所有文件系统; 

(5) 检测根文件系统,并以读写方式重新挂载根文件系统;之前是只读 

(6) 设置系统时钟; 通过读取硬件时钟实现

(7) 根据/etc/sysctl.conf文件来设置内核参数;

(8) 激活lvm及软raid设备;

(9) 激活swap设备;

(10) 加载额外设备的驱动程序;有些没有加载

  (11) 清理操作; 清除临时文件等


3.停止,关闭对应级别服务

接受一个运行级别数字(0-6)。启动或关闭/etc/rc.d/ 目录下的服务脚本所控制服务;

K* 表示要停止的服务,数字越小需要越先关闭

S* 表示要开启的服务,数字越小越快启动。


4.开启字符串终端