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

相关推荐

  • 防火墙之iptables使用

    一、防火墙简介           Firewall:防火墙,隔离工具;工作于主机或网络边缘,对于进出本主机或本网络的报文根据事先定义的检查规则作匹配检测,对于能够被规则匹配到的报文作出相应处理的组件;        软件防火墙(软件逻辑):一般寄生在操作系统…

    2017-06-18
  • CentOS6 ELK实现

    1 简介 我们来介绍Centos6.5基于SSL密码认证部署ELK(Elasticsearch 1.4.4+Logstash 1.4.2+kibana3),同时为大家介绍如何集合如上组件来收集日志,本章的日志收集主要为大家介绍SYSTEM日志收集. 集中化日志收集主要应用场景是在同一个窗口临时性或永久性鉴定分析系统,应用等各类日志,对用户提供极大便利,同时也…

    2015-02-15
  • linux初步

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 文件管理命令 文件管理有哪些命令:ls, cd, pwd, mkdir, rmdir, cp, rm, mv, touch, cat, more, less, head, tail等,下面我们就来详细的说一下(只说常用的,不是命令全部) (1). ls 命令 1 2 3 4 5 6…

    Linux干货 2017-01-22
  • Linux删除特殊字符文件

    由于很多原因可能会导致一些文件的文件名是乱码,当我们删除的时候就会发现这个文件名既不能自动补全,也不能直接删除。

    2017-11-11
  • phpMyAdmin安装部署

    phpMyAdmin安装部署 phpMyAdmin 是一个用PHP编写的软件工具,可以通过web方式控制和操作MySQL数据库。通过phpMyAdmin 可以完全对数据库进行操作,例如建立、复制和删除数据等等。如果使用合适的工具,MySQL数据库的管理就会变得相当简单。应用 MySQL 命令行方式需要对 MySQL 知识非常熟悉,对SQL语言也是同样的道理。…

    2017-06-13