CentOS6主机启动流程

CentOS6主机启动流程

流程

一台Linux主机从开机到登录界面提示输入账号密码的时间中进行了好多动作,了解这些动作有助于了解Linux系统的过程,并能够对开机过程出现的故障进行troubleshooting。

主机启动后最先运行的是主板阶段,一旦电源开启,主板进行POST加点自检动作,自检完成后无故障,主板会读取BIOS信息,根据BIOS信息中的BootSequence次序依次尝试引导启动盘。

当找到启动的磁盘后,读取MBR引导分区的MBR信息,MBR中前446字节存放的是BootLoader,CentOS6系统BootLoader程序为GrubLagecy。

BootLoader只有446字节,不能存放完整的GrubLagecy程序,只存放了GrubLagecy的一小部分(grub 1st stage)。grub 1st stage作用是用来寻找grub其余部分。grub有可能存放在主机的根文件系统中,但此时还没有加载根文件系统的驱动,grub 1st stage 不能直接找到所有的grub文件,因此去指向磁盘中的另一段空间grub 1_5 stage。grub 1_5 stage有足够的空间加载文件系统驱动,去找到grub 2nd stage。grub 2nd stage 为grub主体程序,就是我们能看到的Linux选单界面。整个选单的界面的配置信息存储在/boot/grub/grub.conf文件。通过调整该配置文件可以修改grub选单的各种选项,包括:默认选项、延迟时间、是否隐藏选单界面、背景图片、进入编辑状态需要的密码、以及内核的标题。内核的标题中要配置内核的位置,启动该内核需要的initramfs,同时可以配置密码对该标题中的内核进行验证保护。

经过grub程序引导,内存开始加载存储在磁盘的系统的内核。要注意的是现在加载内核的根并不是主机的真正根文件,而是grub的根即/boot。还需要加载真正的根文件系统,通常情况下文件系统的驱动程序不会放入系统内核,还需要通过initramfs加载根文件系统的驱动程序。为防止系统加载根时候出现故障,第一次加载根文件系统是只读(readonly)的。确认根文件系统没有问题后,chroot到主机的根目录下。寻找Linux系统启动后的第一个应用——init。

init程序会读取/etc/inittab和/etc/init/*.conf中的配置文件。运行系统初始化脚本rc.sysinit,系统初始化。对主机做如下操作:
– 设置主机名
– 设置欢迎信息
– 激活udev和selinux
– 挂载/etc/fstab文件中定义的文件系统
– 检测根文件系统,并以读写的方式重新挂载根文件系统
– 设置系统时钟
– 激活swap设备 – 根据/etc/sysctl.conf文件设置内核参数
– 激活lvm和software raid设备
– 加载额外设备的驱动程序
– 清理操作

初始化完成后根据配置文件中的信息运行rc脚本。rc脚本的配置文件存放在/etc/rc文件夹下。通过对模式的选择rc脚本可以控制Linux的服务。原理是依次关闭K开头link文件的脚本,再启动S开头的link文件脚本。服务的关闭和开启由指令chkconfig控制,不同级别的link文件存放在不同目录(/etc/rc.d/rc#.d),实现不同级别分别控制。全部完成后会运行/etc/rc.local。最后启动终端。

示意图

CentOS6主机启动流程

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

赞 (0)
easyTangeasyTang
上一篇 2017-05-12 20:52
下一篇 2017-05-13 18:14

相关推荐

  • CentOS6启动流程

    CentOS 6 启动流程 | root密码重置 | 添加系统服务 一、CentOS 6 启动流程:     1)POST加电自检         Power-On-Self-Test,主板在接通电源后,系统首先由BIOS程序来对对CPU、…

    Linux干货 2016-09-08
  • 聊聊CentOS6的启动过程

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

    Linux干货 2016-03-14
  • linux 3.26 第一课

    setup app

    2018-03-26
  • Linux基础知识

    命令的语法通用格式: # COMMAND OPTIONS ARGUMENTS COMMAND:  发起一命令:请求内核将某个二进制程序运行为一个进程; 程序 –> 进程 静态 –> 动态(有生命周期) 命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件; 多数系统程序文件都存放在:/bin,…

    Linux干货 2016-10-29
  • Linux程序包管理相关

    前言 首先说说一个软件的诞生过程: 程序员用编程语言写文本格式的源代码,但是计算机只能读懂二进制文件,那么就需要将源代码转换成二进制格式,这个过程称为编译。编译用的工具称为编译器,编译器有很多种,在Linux上常用gcc这个编译器。利用编译器,得到二进制格式的文件(二进制程序(Windows上.exe.msi,Linux.elf)、库文件、配置文件、帮助文件…

    Linux干货 2018-01-04
  • N22-第六周作业

    请详细总结vim编辑器的使用并完成以下练习题      vim是模式化的文本编辑器。在不同模式下,每一次按键的效果都不一样。vim有三种工作模式,分别是编辑模式,插入模式和末行模式。编辑模式是打开vim后的默认模式,用于查看文本或进行复制,粘贴,删除等编辑命令。插入模式是为了向文本中输入信息。末行模式是vim自带的命令行接口,能…

    Linux干货 2016-09-26