话说CentOS6的启动流程

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程序,进入登录状态,等待用户登录

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

(0)
renpingshengrenpingsheng
上一篇 2017-05-14 20:53
下一篇 2017-05-14 22:27

相关推荐

  • 深入了解正则表达式与grep应用

    刚开始学习正则表达式时候,感觉和看无字天书没什么分别,迷茫了一段时间后,仔细去理解,慢慢你会发现也没什么的。认真去钻研了,多练习,是可以理解他们的含义的。也许正如老师所言,学习linux ,入门的确很陡峭,对于我这个基础薄弱,智商低于80的人来说的确很吃力。关于正则概念的就不去描述了,说起来真的不好表达,下面通过一些实例来进行深入理解吧。 1.显示当前系统上…

    2017-11-01
  • Nginx 编译安装

    Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服 1、Apache服务器和nginx的优缺点: Apache具有很优秀的性能,而且通过模块可以提供各种丰富的功能。 1)首先Apache对客户端的响应是支持并发的 ,运行httpd这个daemon进程之后,它会同时产生多个子进程/…

    Linux干货 2017-02-06
  • 马哥教育网络班20期+第二周课程练习

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 文件管理有 cp, mv, rm  复制命令:cp [root@ddwhost ~]# cp /etc/magic /tmp/         cp&n…

    Linux干货 2016-06-23
  • Python内置数据结构——集合set

    集合 定义 set翻译为集合 collection翻译为集合类型,是一个较大的概念 set是一个可变的、无序的、不重复的元素组成的集合 set的元素要求必须可以hash,目前已学的不可hash的类型只有list、set 元素不可以索引 set可以迭代 set的初始化 set_1 =set() #表示定义一个空集合set_1 set_1 =set(iterab…

    Linux干货 2017-10-03
  • 第五周作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; [root@unclez ~]#  grep -E "^[[:space:]]+.*" /boot/grub/grub.cong 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟…

    Linux干货 2016-12-31
  • Linux设备驱动Hello World程序介绍

    by Valerie Henson07/05/2007 (译者注:本文的例子是只能在linux的2.6内核下使用的,2.6以上的内核,译者没有做过实验,2.4是要修改make文件才能运行。) 本文的出处:这里 自古以来,学习一门新编程语言的第一步就是写一个打印“hello world”的程序(可以看《hello world 集中营》这个帖子供罗列了300个“…

    Linux干货 2015-04-01