码迷,mamicode.com
首页 > 其他好文 > 详细

Centos 系统启动流程

时间:2019-06-15 21:57:39      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:inf   文件   清理   配置文件   版本   centos   系统初始   boot   五步   

  前言:因为centos7使用的是systemd初始化进程改动比较大,使用这里主要介绍centos5和6的开机启动流程。
先上一个大致的启动流程图
技术图片
第一步:POST加电自检
  加电自检是BIOS功能的一部分,负责CPU,主板,内存等硬件的自检工作。
第二步:BootLoader引导加载器
  它负责引导系统启动,目前主流的linux都是用GRUB2引导程序,它负责找到内核文件,提供grub菜单。
第三步:加载内核文件
  通过上面引导的内核文件,来加载到内存中解压缩,一共分为四个步骤:

   1.探测可识别到的所有硬件设备。
   2.加载硬件驱动程序(它是借助于ramdisk/ramfs加载的)
   3.以只读的方式挂载文件系统
   4.运行用户空间的第一个程序:/sbin/init

init程序初始化
  1.根据init的配置文件获取到运行级别,并获取系统初始化脚本的文件路径(centos5的init文件为/etc/inittab,centos6将/etc/inittab文件拆分为多个文件)。
  2.读取系统初始化脚本/etc/rc.d/rc.sysinit,并按照脚本内容执行。

  1. 设置主机名
  2. 设置欢迎信息
  3. 激活udev和selinux
  4. 挂载/etc/fstab文件中定义的文件系统
  5. 检测根文件系统,并以读写方式重新挂载文件系统
  6. 设置系统时钟
  7. 激活swap设置
  8. 根据/etc/sysctl.conf文件设置内核参数
  9. 激活lvm及software raid设备
  10. 加载额外设备的驱动程序
  11. 清理操作

  根据前面获取到的运行级别,运行/etc/rc.d/rc脚本文件
/etc/rc.d/目录下有几个rc#.d(#号代表数字,也是运行级别)的文件,其目录下的文件是连接文件,只向/etc/init.d/下的服务脚本文件,根据在/etc/inittab获取的默认运行级别和/etc/rc#.d下的链接文件,来启动和关闭系统的服务,想必现在也能联想到了为什么不同级别下启动的服务不相同,为什么有的服务开机启动,有的却关闭 /etc/rc#.d/下的链接文件以K或者S开头,K表示开机要被停止的服务,S表示开机要被启动的服务,而且服务脚本都会有一个优先级,

K:K##:##运行次序;数字越小,越先运行;数字越小的服务,通常为依赖到别的服务
S:S##:##运行次序;数字越小,越先运行;数字越小的服务,通常为被依赖到的服务
技术图片

  在2345级别的/etc/rc#.d目录下都会有一个rc.local文件,它链接到/etc/rc.d/rc.local,它并不是一个启动文件,它其实是一个普通文件,如果你想开机做什么操作可以写到这个文件里。
第四步:启动终端程序
  这里要看到底是什么运行级别了,如果是图形界面就直接进入图形界面。
第五步:用户登录
  到这里系统就启动完成了。
由于版本变化比较大,系统初始化进程命令的比较
init命令:
技术图片
设置开机启动的命令比较
技术图片
技术图片
再来一张系统启动图:
技术图片
系统启动详细图:
技术图片

Centos 系统启动流程

标签:inf   文件   清理   配置文件   版本   centos   系统初始   boot   五步   

原文地址:https://blog.51cto.com/13449039/2409542

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!