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

相关推荐

  • N25 第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 2、编辑/etc/group文件,添加组hadoop。 3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。 4、复制/etc/sk…

    Linux干货 2017-01-04
  • Linux下编译安装httpd

    本章学习内容         ———介绍httpd         ———-rpm和yum不同   &nbs…

    Linux干货 2016-08-25
  • 网络班22期+第二周作业练习

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示? Linux上文件管理类命令常用的有:pwd、ls、cd、cp、touch、mv、rm、rmdir 1)pwd:显示当前工作目录 2)ls:列出指定目录下的内容 常用的选项有: -a:列出目录中的所有文件,包括隐藏文件 -A:显示除.和..之外的所有文件 -l,相当于–long,显示…

    Linux干货 2016-08-29
  • Linux发行版本介绍与哲学思想

    1.Linux发行版本介绍 Linux 发行版(英语:Linux distribution,也被叫做GNU/Linux 发行版),为一般用户预先集成好的Linux操作系统及各种应用软件。一般用户不需要重新编译,在直接安装之后,只需要小幅度更改设置就可以使用,通常以软件包管理系统来进行应用软件的管理。 1.服务器版本:Centos/Debian 从Red Ha…

    Linux干货 2016-10-28
  • Linux网络管理&脚本编程之执行流程、循环

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥(Bridge):是早期的两端口二层网络设备,用来连接不同网段。网桥的两个端口分别有一条独立的交换信道,不是共享一条背板总线,可隔离冲突域。网桥比集线器(Hub)性能更好,集线器上各端口都是共享同一条背板总线的。后来,网桥被具有更多端口、同时也可隔离冲突域的交换机(Switc…

    Linux干货 2016-11-14
  • Jmeter性能测试 入门

    Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率。 熟练使用Jmeter后, 能用Jmeter搞定的事情,你就不会使用LoadRunner了。 【小坦克Jmeter教程】,将会覆盖Jmeter的各个功能,并且会通过丰富的实例,让读者快速掌握Jmeter的各种用法 。 本文将通过一个实际的…

    Linux干货 2015-03-06