CentOS 5.0系统启动流程

注:CentOS系统5.x,6.x和7.x的启动流程不同,所以本文仅讨论CentOS 5.x的启动流程。

1. POST加电自检

服务器在开机之后首先会先进行硬件的检测,在开机界面我们可能会看到检测硬盘,cpu或raid卡等信息,此界面即硬件自检界面。

2. BIOS引导

BIOS(BootSequence)用于通过指定的引导装置引导系统启动。

3. Bootloader(MBR)

在所有可以引导系统启动的介质都会存在引导启动程序,即MBR。当然现在也可能会有UEFI引导启动的系统,此处只讨论MBR引导启动方式。

  1. MBR为于硬盘0柱面0扇区的前446字节,随后的64字节为分区表信息和分区标识位。

CentOS 5.0系统启动流程
此处即为系统引导盘的前512字节,这512字节如果被破坏的话系统将无法启动。

  1. BootLoader分为多种类型,如LiLo,grub等,其中CentOS 系统采用的为grub。 

    • grub程序为于/boot/grub/目录下

CentOS 5.0系统启动流程
其中存放有stage1,stage2,grub.conf等信息。

  • stage1存放的是MBR的备份信息,如下:

CentOS 5.0系统启动流程

  • grub.conf即开机引导启动的菜单,其内容如下,用户也可以自己定义:

CentOS 5.0系统启动流程

  • grub启动系统分为多个阶段,首先会通过grub.conf文件寻找内核和initrd文件引导系统,然后内核通过initrd文件加载硬盘的根文件系统。

4./sbin/init

/sbin/init为系统的第一个进程,内核加载完毕之后会只读挂载rootfs,然后寻找/sbin/init,然后内核启动阶段结束,转由用户空间启动阶段。

CentOS 5.0系统启动流程

5./etc/inittab

系统启动之后会运行/etc/inittab文件,此文件定义如下信息:

  • 系统默认运行级别;
  • 执行/etc/rc.d/rc.sysinit脚本进行系统初始化;
  • 关闭对应级别下需要停止的服务,以k*开头,启动对应级别下需要运行的服务,以S*开头;
  • 通过mingetty加载指定的tty;
  • 加载图形终端;
  • 定义ctrl+alt+del是否可以重启系统;
  • 定义系统断电和电力恢复的动作; 
    其中/etc/rc.d/rc.sysinit定义如下内容:
  • 设置主机名;
  • 设置欢迎信息;
  • 激活udev和selinux;
  • 挂载/etc/fstab文件中定义的所有文件系统;
  • 检测根文件系统,并以读写方式重新挂载根文件系统;
  • 设置系统时钟;
  • 根据/etc/sysctl.conf文件设置内核参数;
  • 激活lvm及软raid设备;
  • 激活各swap设备;
  • 加载额外设备的驱动程序;
  • 清理等操作;

6. 详解系统服务加载过程:

系统所有的服务都存放于/etc/init.d/目录下,然而在/etc/rc.d/存放多个rc#.d命名的目录,这些目录定义的就是对应的运行级别下所有需要停止和启动的服务:

CentOS 5.0系统启动流程
以上为3级别下需要启动和停止的服务,可以看到所有的服务都是以软连接的形式存在的。 
以软连接存在原因:

  • 所有服务脚本都存放在/etc/init.d/目录下
  • 所有服务脚本都有一个共同过的特性,脚本开头必须定义如下两行信息: 
    #chkconfig 运行级别 启动优先级 停止优先级 
    description:***** 
    如atd服务的脚本:

CentOS 5.0系统启动流程

  • 此类脚本收chkconfig管理,当执行以下指定命令之后会在相应rc#.d目录下创建指定的以K*或S*开头的脚本软连接,系统就是通过加载这些脚本的软连接启动服务: 
    chkconfig –add 脚本名 #添加服务 
    chkconfig –del 脚本名 #删除服务 
    chkconfig –level 运行级别 on|off #定义指定服务在指定级别下是否运行 
    chkconfig –list #列出所有服务信息

以上便是CentOS 5.x的启动流程总结。

原创文章,作者:王子豪,如若转载,请注明出处:http://www.178linux.com/75515

(0)
王子豪王子豪
上一篇 2017-05-14 09:20
下一篇 2017-05-14 14:53

相关推荐

  • 22期第十二周课堂练习

    1、请描述一次完整的http请求处理过程; (1)建立和处理连接:接收请求或者拒绝请求; (2)接收请求:接收来自于网络上的主机请求报文中对某特定的资源的一次请求的过程; (3)处理请求:对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息 (4)访问资源:获取请求报文中请求的资源 (5)构建响应报文; (6)发送响应报文; (7)记录日志; 2、h…

    Linux干货 2016-12-26
  • 马哥教育网络班22期+第7周课程练习

    1、创建一个10G分区,并格式为ext4文件系统; fdisk /dev/sdd n p 1 2048 +10G w (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; mke2fs -t ext4 -b 2048 -m 2&nb…

    Linux干货 2016-09-26
  • 马哥教育网络班22期+第6周课程练习

    请详细总结vim编辑器的使用并完成以下练习题 vim: 模式化的编辑器 基本模式:     编辑模式:命令模式     输入模式:     未行模式:内置的命令行接口 打开文件:      …

    Linux干货 2016-09-26
  • 基于key验证和一些自动化运维工具

    pssh pscp.pssh Pslurp.pssh AIDE等

    2018-01-16
  • net25-第14周作业

    系统的INPUT和OUTPUT默认策略为DROP; ~]# iptables -P INPUT DROP ~]# iptables -P OUTPUT DROP 1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的页面不允许访问;web服务器仅允许响应报文离开本机; ~]#iptables -…

    Linux干货 2017-05-15
  • shell脚本编程之变量详解

    什么是变量     变量是计算机内存的单元,其中存放的值可以改变。当Shell脚本需要保存一些信息时,如一个文件名或是一个数字,就把它存放在一个变量中。每个变量有一个名字,所以很容易引用它。 使用变量可以保存有用信息,使系统获知用户相关设置,变量也可以用于保存暂时信息。 变量:变量类型 作用:  &…

    Linux干货 2016-08-15