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

相关推荐

  • 马哥教育N22期第六周作业

    关于vim编辑器使用方法整理 编辑器分为文本编辑器、全屏编辑器、模式化编辑器 vim是最常用的编辑器之一,是vi的增强版 基本模式分为编辑模式、命令模式、输入模式、末行模式 下面我们介绍一下vim编辑器常用方法: 打开文件 vim +#:打开文件后,直接光标处于第#行行首 +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配 +…

    Linux干货 2016-10-09
  • raid5创建

    创建分区并改类型 创建raid5   创建把文件系统 生成配置文件    

    2017-12-17
  • n28 第二周作业

    n28 第二周作业

    Linux干货 2017-12-09
  • Selinux

    Selinux:强制访问控制的安全模块,linux内核2.6版本后集成在内核中。     selinux的四种工作类型:             strict:centos5中,每隔进程都受到seli…

    Linux干货 2016-09-18
  • rsync3.0 (初稿 逐步完善)

    实验环境为 centos 7.2 系统   CentOS Linux release 7.2.1511 (Core)   主机  ip               10.1.250.19 客…

    Linux干货 2016-06-03
  • N22-第二周作业

    1、linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。    文件管理命令        mkdir     创建目录         &…

    Linux干货 2016-08-22