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)
上一篇 2017-05-12 20:52
下一篇 2017-05-13 18:14

相关推荐

  • 关于man的几个重要命令

    接触Linux有很多年了,以前对于linux我觉得自己懂得的还算一般吧,可是听了马哥的关于linux的视频课程,发现自己就是一个还没入门的菜鸟,所以果断的狠心的报了马哥的网络班,拜在马哥旗下,以后就打着马哥的旗号到外面混,哈哈最初的这几天学习,因为工作和时间的等等等的关系,所以才到现在还在赶着写我的博客作业,现在就最有感触的几个命令串联一下。学习linux肯…

    Linux干货 2016-10-31
  • ☞实时数据同步方案{ rsync; inotify; }

    实时数据同步方案{ rsync; inotify; } rsync 传输数据 安装 rsyncd 服务 CentOS 6 CentOS 7 配置 rsyncd 服务 配置 rsync 手动同步示例     启动 rsyncd 服务 CentOS 6 CentOS 7 rsync 客户端命令 rsync 数据传输功能 基…

    Linux干货 2016-10-29
  • 相关练习

    1、请使用命令行展开功能来完成以下练习:    (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d  mkdir /tmp/{a,b}_{c,d}    (2)、创建/tmp/mylinux目录下的:  mkdir -pv /tmp/mylinux/{bin,boot/grub,de…

    Linux干货 2016-11-05
  • 网络21期第十周博客作业

    网络21期第十周博客作业 1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) Centos6启动流程:       POST加电自检 —> BOOT Sequence —> 加载内核启动系统  &…

    Linux干货 2016-09-15
  • M20-1权限作业

    1、当用户xiaoming对/testdir 目录无执行权限时,意味着无法做哪些操作? [root@centos7 testdir]# ls -ld /testdir/ drwxr-xrw-. 3 root root 27 Aug  5 0…

    Linux干货 2016-08-05
  • N23-卡卡琦-第二周

    1、文件管理类命令 常规命令:copy、mv、rm (1).copy 文件复制 用法: 注意:复制文件只是复制文件的数据而不是元数据,但是可以保留元数据的信息。 单源复制:目录是否存在都可以 多源复制:目录必须是存在的 -i:提醒用户操作确认(交互式) -f:强行覆盖 -r:递归复制目录 -p:保留源数据 -a:用于实现归档,做备份 -d:不跟踪符号链接所指…

    Linux干货 2016-12-11