1.按下开机按钮,电脑的主板通电,电脑开始加电自检(POST,Power On and Self Test),测试主机的硬件是否满足开机的要求.

2.加载主板上的BIOS(Base Input/Output System,基本输入输出系统),BIOS会加载用户设定的第一个可开机设备.,这里我们只说硬盘的加载.

可以按下键盘上的Esc或者是F2或者是Del键,可以调整开机设备,这个键依据每个主板的不同而不同.

3.BIOS加载硬盘的第一个分区的第一个扇区内的内容,也叫做MBR(Master Boot Record,主引导记录).

MBR只有512byte大小,由三部分组成:主引导记录,硬盘分区表和硬盘有效标志,其中主引导记录占用446byte,硬盘分区表占用64byte,硬盘有效标志占用2byte,通常为55AA.

4.由MBR来加载CentOS系统的开机系统管理程序GRUB(GRand Unitifed Bootloader),也就是/boot/grub/grub.conf文件.

grub.conf这个文件的内容如下:

#指定默认加载第一个系统,如果没有这一项,用户不选择的话,系统默认会一直停在这里
default=0
#开机菜单显示的时间,不建议设置太长时间
timeout=5
#开机菜单显示时的背景图,分辨率为640*480
splashimage=(hd0,0)/grub/splash.xpm.gz
#这一项为默认隐藏菜单,可以省略
hiddenmenu
#显示的开机菜单
title CentOS 6 (2.6.32-642.el6.x86_64)
#指定系统所在的硬盘的第一个分区
root (hd0,0)
kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=UUID=234a19e9-96c4-4710-af9b-536fdefbe875 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
#指明内核kernel的地址,这里的根文件系统为/boot这个分区,后面接的是开机时内核加载的参数
#ro指定开机过程中,以ro(ready only)方式加载根文件系统
#root=UUID=234a19e9-96c4-4710-af9b-536fdefbe875为系统的真正的根,这里是用硬盘分区的UUID号指定的
#rd_NO_LUKS 的意思是说系统上禁用会被initrd或init脚本自动挂载的加密设备
#LANG=en_US.UTF-8指定系统所用的语言
#rd_NO_LVM为系统不启用LVM逻辑卷
#rd_NO_MD 选项为系统禁用软RAID设备
#SYSFONT=latarcyrheb-sun16选项为系统开机时所用的字体
#KEYBOARDTYPE=pc选项为指定键盘的类型
#KEYTABLE=us选项为指定美式键盘
#rd_NO_DM选项为不启用硬RAID
#rhgb选项为不显示开机的画面
#quiet选项指定系统开机过程中加载的各种信息不显示出来
#指明initramfs.img文件的地址,这里默认的根系统为/boot分区
initrd /initramfs-2.6.32-642.el6.x86_64.img

5.依据GRUB中的信息,加载CentOS6系统的内核到内存中,并把内核解压缩.

6.内核初始化完成后,会加载initramfs.img这个虚拟的文件系统,并根据initramfs.img提供的各种驱动探测加载主机上所有的硬件设备,然后以只读的方式挂载根文件系统.

7.执行/sbin/init程序,读取系统的/etc/inittab文件,取得系统的运行级别,同时运行/etc/rc.d/rc.sysinit程序,初始化系统的各种信息,比如:

读取主机名hostname,
依据/etc/issue文件读取系统的欢迎信息
激活udev和selinux
检测根文件系统,并根据/etc/fstab文件来以读写方式重新挂载根文件系统
设置系统时钟
激活swap分区
根据/etc/sysctl.conf文件设置内核参数
激活lvm及software raid设备
加载额外设备的驱动程序

8.根据系统的运行级别,运行/etc/rc.d/rc#.d/下的各种文件,这里所有的文件都是/etc/rc.d/init.d/目录下文件的软链接

这个文件夹下面的程序都是以K和S开头的,基中
以K开头的文件是在系统开机过程中要被运行的服务,K后面跟的数字表示的是服务的运行次序;数字越小,越先运行;数字越小的服务,通常都会依赖到别的服务,
以S开关的服务则表示的是系统在关机或是切换运行级别时要结束的服务,S后面跟的数字表示的是服务结束的次序;数字越小,越先被结束;数字越小的服务,通常为被依赖到的服务

9.正常级别下,前面的程序运行完毕后, 最后一个S99local的程序指向/etc/rc.d/rc.local这个脚本,用户可以在这个脚本里可以写入自己不方便或是不需写入的系统服务脚本.

10.执行/bin/login程序,进入登录状态,等待用户登录

话说CentOS6的启动流程的更多相关文章

  1. CentOS6启动流程(含详细流程图)

    参考:Linux启动流程和grub详解(作者:好笔记运维) 为什么把这位的参考放在前面,主要是这位大佬的流程图太详细了.虽说不一定要了解这么详细,但还是很佩服啊.不多说,上图(在新标签中打开图片) 下 ...

  2. CentOS的启动流程

    因6和7俩个系列的启动流程有区别,所以我把他们分开来写 linux可看作是内核和根文件系统组成我们把内核单独拿出来总结一下 CentOS6系列启动流程 首先总结一下总体的流程,接下来展开来叙述:POS ...

  3. Linux-CentOS6.9启动流程排错

    1 . CentOS6.9启动流程 POST 加电自检,是BIOS功能的一个主要部分.负责完成对CPU.主板.内存.硬盘子系统.显示子系统.串并行接口.键盘.CD-ROM光驱等硬件情况的检测. Boo ...

  4. CentOS6 启动流程图文解剖

    我们在使用Linux操作系统的时候,我们只需按下电源键,等待,然后输入账户和密码就可以使用Linux操作系统了.那么在按下电源到输入账号和密码之前,操作系统都做了些什么?下面就来讲述在这段时间发生的动 ...

  5. CentOS6启动流程

    CentOS6启动流程 1.加载BIOS的硬件信息,获取第一个启动设备 在通电之后,CentOS6会进行加电自检(Power On Self Test),这个过程主要是由BIOS完成的.在自检完毕,会 ...

  6. Linux启动流程CentOS6和7的区别

    目 录 Linux启动流程    I 第1章 CentOS6启动流程    1 1.1 BIOS    1 1.2 MBR    1 1.3 GRUB    1 1.4 kernel(加载内核)    ...

  7. centos6之前版本的启动流程

    centos6 之前的系统启动: linux启动流程: 1)加电自检 2)读取MBR,引导加载程序grub,完成grub的三个阶段. 3)加载系统内核kernel,执行系统初始化信息. 4)启动用户空 ...

  8. Linux操作系统-CentOS6启动流程和服务管理

    Linux操作系统-CentOS6启动流程和服务管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Linux组成 1>.Linux: kernel+rootfs ker ...

  9. CentOS6和7启动流程

    CentOS6启动流程 https://linux.cn/article-8807-1.html BIOS 开机自检,硬件自检 MBR MBR磁盘分区是一种使用最为广泛的分区结构,它也被称为DOS分区 ...

随机推荐

  1. [bzoj1316] 树上的询问

    裸的点分治.. 及时把已经确定的询问清掉就能快不少.时间复杂度O(nlogn*p) #include<cstdio> #include<iostream> #include&l ...

  2. UESTC1599-wtmsb-优先队列

    wtmsb Time Limit: 1000/100MS (Java/Others) Memory Limit: 131072/131072KB (Java/Others) 这天,AutSky_Jad ...

  3. Codeforces Round #415(Div. 2)-810A.。。。 810B.。。。 810C.。。。不会

    CodeForces - 810A A. Straight «A» time limit per test 1 second memory limit per test 256 megabytes i ...

  4. insertBefore方法(javascript与jQuery)

    说到insertBefore()方法,其实javascript与jQuery中都有此方法,那么他们用法是否相同呢? 其实,还是有点区别的.反正我是爱搞混淆了,先做个小笔记吧! 1.insertBefo ...

  5. Oracle_SQL92_连接查询

    Oracle_SQL92_连接查询   笛卡儿积 --笛卡尔积 select * from emp;----14 select * from dept;----4 select * from emp, ...

  6. 一篇文章让你深透理解cookie和session,附带分布式WEB系统redis共享session方案

    cookie和session有什么区别?这是一个很基础的知识点,大家可能都知道一个大概:cookie是存在客户端的,session是存储在服务端,cookie和session用来验证识别用户的登录状态 ...

  7. dig命令

      dig(域信息搜索器)命令是一个用于询问 DNS 域名服务器的灵活的工具.它执行 DNS 搜索,显示从受请求的域名服务器返回的答复.多数 DNS 管理员利用 dig 作为 DNS 问题的故障诊断, ...

  8. dedecms列表页有图调用缩略图无图留空的方法

    默认情况下,织梦的文章列表页会调用出当前栏目下的文章列表,并且调用出每个文章的缩略图:如果文章本身就有图,会调用出一张小图,如果没有,则会显示默认的织梦图片.这种处理方式有时候比较影响美观,其实可以修 ...

  9. MapReduce 原理与 Python 实践

    MapReduce 原理与 Python 实践 1. MapReduce 原理 以下是个人在MongoDB和Redis实际应用中总结的Map-Reduce的理解 Hadoop 的 MapReduce ...

  10. Java之IO流学习总结【上】

    一.什么是流? 流就是字节序列的抽象概念,能被连续读取数据的数据源和能被连续写入数据的接收端就是流,流机制是Java及C++中的一个重要机制,通过流我们可以自由地控制文件.内存.IO设备等数据的流向. ...