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

相关推荐

  • 推荐-Centos常用的进程管理和资源查看工具

    一、pstree     pstree命令以树状图的方式展现进程之间的派生关系 -a:显示每个程序的完整指令,包含路径,参数或是常驻服务的标示;  -c:不使用精简标示法;  -G:使用VT100终端机的列绘图字符;  -h:列出树状图时,特别标明现在执行的程序;  -H<…

    Linux干货 2016-04-05
  • 聊聊CentOS6的启动过程

    前言:     作为一个合格的运维人员,系统的启动过程我们需要牢记在心,此文不深入探讨,只求大致理解CentOS6的启动过程。 一张图带你了解CentOS6的启动过程 注意:图片放大查看效果更佳 上图各阶段详解 POST:计算机开机时BIOS对其各硬件的简单测试,测试各硬件的完整性 BootSqunce:加电自检后根据…

    Linux干货 2016-03-14
  • 软链接与硬链接的分析

    Linux引用硬链接与软链接,是为了实现文件的共享,更有隐藏文件路径、增加权限安全及节省存储等的好处。很多新手不知道软链接与硬链接的区别,今天大家一起总结它们的区别吧^_^ 一,硬链接 硬链接的特性可以体现出什么是硬链接: 通过索引节点来进行链接,文件要有相同的inode及data block 不允许跨分区创建 只有在同一文件系统中的文件之间才可以,不能交叉…

    2017-07-22
  • LAMP系列之(php-fpm模式)分布三台机器部署

    LAMP系列之(php-fpm模式)分布三台机器部署 现在我们需要做一个实验,就是把apache , php-fpm , mariadb ,分别安装在3台机器上,协同工作具体如下: 192.168.42.150 apache 192.168.42.151 php-fpm 192.168.42.152 mariadb 关闭防火墙 关闭selinux 分别给这3…

    Linux干货 2017-06-03
  • 再不自动化就晚啦!优云教你4步打造基于CentOS的产品镜像

    随着Linux程序的增多,软件的安装过程中经常出现如下问题: 1、硬件配置类似或者相同时,批量安装系统和软件,希望实现自动化安装,减少安装时间和人为出错。 2、工程实施人员在不同客户现场进行系统和软件安装(硬件配置不同),由于硬件有差别,不容易实现自动化。 笔者针对以上场景,从提高生产效率,减少误操作的立场,提出如下解决方案,希望能达到抛砖引玉的目的,并能与…

    系统运维 2016-07-16
  • bash的工作特性-命令执行状态返回值、命令行展开

    bash的基础特性:命令的执行状态结果 命令执行的状态结果:      bash通过状态返回值来输出此结果:           成功:0           失败:1-255 命令执行完成之后,其状态返回值会保存于bash的特殊…

    Linux干货 2016-08-22