标签:star grub.conf 必须 引导 分享图片 规范 执行 运维工程师 进程
简介: 作为一个Linux运维工程师,必须要熟悉Linux系统的启动流程,才能在Linux系统出现故障时及时地发现问题,解决问题;下面将为大家介绍一下CentOS系统的系统启动流程。
CentOS启动流程
根据上图所示,centos系统总体可分为5个阶段:POST加电自检—BOOT启动引导阶段—Grub启动引导阶段—Kernel初始化阶段—进程引导阶段(init)。
一. POST加电自检
此阶段是所有操作系统都必须的阶段,就是设备开机,主板硬件检测的阶段,
二. BOOT启动引导阶段
当硬件自检没有问题之后,BIOS会按照次序查找各个引导设备,第一次有引导程序的设备,即为本次启动要用到的设备,一般为磁盘的第一个扇区,上面有MBR的系统引导加载器,MBR为用户提供了一个菜单,允许用户选择要启动的系统或不同的内核版本,把用户选定的内核装载到RAM中的特定空间中,进行解压、展开,而后把系统控制权移交给内核。
而MBR的引导程序可分为三个部分,前446个字节为BootLoader的引导程序,复制引导启动操作系统;中间的64个字节为分区表,每16自己标识一个分区,一共只能有4个分区,分别为3个主分区和1个拓展分区;最后的2个自己为MBR区域的有效性标识,一般标识为55AA即有效
三. Grub启动引导阶段
GRUB(GRand Unified Bootloader简称“GRUB”)是一个来自GNU项目的多操作系统 启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。
GRUB可分为两个版本,grub 0.x称为grub legacy;grub 1.x称为grub2。CentOS 6之前的系统一般为grub legacy,配置文件的路径为/boot/grub/grub.conf或/etc/grub.conf,CentOS 7 为grub2,配置文件的路径为/boot/grub2/gurb2.cfg或者/etc/grub2.cfg
Grub的引导可以分为三步:
Stage 1:mbr引导
Stage 1_5:mbr之后的扇区,让stage1中BootLoader能识别stage2所在分区上的文件系统
Stage 2:将主引导程序载入磁盘分区中(CentOS 6 /boot/grub/,CentOS 7 /boot/grub2)
四. Kernel初始化阶段
当系统读取到grub.conf文件中的内核启动参数后,内核随即进入内核初始化启动阶段。内核初始化进程分为四个步骤进行,首先内核会探测可识别到的所有硬件设备;接着为硬件设备加载硬件驱动程序,加载硬件驱动时,内核需要借助伪文件系统ramdisk进行加载驱动;当硬件驱动加载完成后,内核会以只读的方式挂载一个根文件系统,并且移交根文件系统给正常的系统;然后运行用户空间的第一个程序:/sbin/init,至此,内核的初始化阶段就完成了。
五. 进程引导阶段
在内核启动用户空间的第一个程序/sbin/init之后,init将全面接管centos系统,init也是所有其他进程的父进程;
Init程序在centos系统的不同版本中各不一样,在centos 5中,init程序是SysV init,其配置文件为/etc/inittab;在centos 6中,init程序是upstart,其配置文件为/etc/init/&.conf,而/etc/inittab文件仅用于定义默认运行级别;在centos 7中,init程序是systemctl,其配置文件为/usr/lib/system/或/etc/system/system/。
Init引导阶段可分为四个部分,1.设置默认运行级别;2.运行系统初始化脚本,完成系统初始化;3.关闭对应级别下需要停止的服务,启动对应级别下需要启动的服务;4.设置登录终端(如需启动图形界面,则启动图形界面)
1.设置默认运行级别
Centos系统的运行级别是为了系统运行或维护等目的设定的运行机制,分为7个级别,分别是
0:关机,shutdown
1:单用户模式(single user),登录用户为root用户,无须认证,为维护模式
2:多用户模式(multi user),会启动网络功能,但不会启动NFS,为维护模式
3:多用户模式(multi user),完全功能模式,文件界面
4:预留级别,目前无特别适用目的,但习惯以同3级别功能使用
5:多用户模式(multi user),完全功能模式,图形界面
6:重启,reboot
级别3和5是centos系统的默认级别,如需要进行级别切换,可以使用init+#,进行级别切 换,如需查看当前所在的运行级别可以使用who -r或runlevel命令查看
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)清理操作
4.设置登录终端(如需启动图形界面,则启动图形界面)
当init进程启动完对应级别下需要启动的服务后,将进入系统启动进程的最后一步,就是设置登录终端,如需要启动图形界面的,则启动图形界面,当登录终端启动完成后,centos系统的启动流程就完成了,输入正确的用户名跟密码后将可以正常使用centos系统。
以上为本人对于Centos系统启动流程的一些总结理解,如有不当之处,希望各位大神多多指导,感谢每位朋友的阅读。
标签:star grub.conf 必须 引导 分享图片 规范 执行 运维工程师 进程
原文地址:http://blog.51cto.com/12068974/2306497