centos 6系统启动流程分析

linux 系统启动流程:

之前有描述过linux的启动流程,但还有许多模糊的地方,经过一段时间了学习,查资料,看脚本,比初次理解更深,可以将上次模糊或不足的地方描述得比较清楚一些。

先看一张启动流程图。

 centos 6系统启动流程分析

分析:

linux系统的启动流程大概可以分为两大部分:

第一部分为内核空间的启动

第二部分为用户空间的启动

其中,内核空间的启动主要可为分四个主要的阶段:

post –>  mbr  –> grub   –>  kernel

用户空间的启动,也主要分四个阶段:

inittab –> sysinit –> runlevel –> rc.local ; mingetty ;login

 

下边我将尽已所能,将每个过程描述清楚。

 

内核空间启动的四个阶段:

第一个阶段 post:

主机通电之后,运行的第一个程序,就是bios,全称base input output system,这个程序是集成在主板的rom中,运行起来后,就要先跑一次post代码,进行最基本的检查,主要检查主机的硬件是否正常,若不正常,将会报错并不再进行下一步。

 

第二阶段  装载MBR

post代码执行完后,就会将bios中设定好的启动顺序,将第一个活动的设备的MBR加载至内存中,MBR446字节为linux中的主导引程序grubstage1。至此,bios的任务完成。

 

 

第三阶段  装载grub引导启动程序

MBRgrubstage1加载到内存中后,又会继续读取第一个扇区512字节后的大概27个扇区,这个范围内,正是stage1_5所在的阶段。stage1_5阶段,存储了/boot分区的文件系统驱动,加载到此驱动后,才能去加载/boot分区中的stage2阶段。至此,整个linux的引导启动程序grub加载完成

 

第四阶段  加载kernel

grub的配置文件grub.conf中,已经指明了kernel的位置以及initramfs的位置,能加载kernel,并且挂载initramfs已经是板上钉钉的事,接下来的事,只需要借助initramfs这个伪根文件系统中存储的驱动,去挂载真正的“/”文件系统,需要注意的是,此时“/”文件系统是以只读方式挂载的。下一步,将会启动系统的第一个程序:/sbin/initinit进程起来之后,下接来要做的事,就归属于用户空间了。

 

用户空间启动的四个阶段:

第一阶段:

/sbin/init程序运行为init进程后,第一件事,就是去读取配置文件/etc/inittab/etc/init目录下的*.conf文件,按照这些配置文件的定义,去完成系统的初始化。

 

第二阶段:

根据init程序配置文件的定义,在任何运行级别下运行/etc/rc.d/sysinit脚本。此脚本主要完成的工作如下有设置主机名,主机时间,根据/etc/fstab中的定义,挂载指定的文件系统,“/”文件系统也被重新以只读的方式挂载,激活LVMsortware raid这些虚拟设备,激活swap设备,加载额外的驱动程序,清理此前这些操作产生的无用的文件。

 

第三阶段:

执行完init程序配置文件中指定运行的sysinit脚本后,将会根据确定的运行级别,运行相应的运行级别下的脚本,启动对应的服务,关闭对应的服务。

linux每个运行级别下,设置启动的服务都不相同,大概有几种级别:

0:关机

1:单用户模式或救援模式

2:多用户模式,多用于维护,且没有NFS

3: 多用户模式,正常模式,平时用得最多的就是这个

4:保留

5:图形界面

6:重启

执行完相应的运行级别的脚本后,还要执行用户定义在rc.local中的命令。执行mingettty,开启6个终端,提示用户输入用户名和密码进行登陆。至此,整个系统启动流程结束。

 

 

 

 

 

 

 

 

 

 

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

(0)
old_radishold_radish
上一篇 2017-05-15
下一篇 2017-05-15

相关推荐

  • 脚本又见脚本,作业又是作业_第七周

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [root@centos ~]# fdisk -l &n…

    Linux干货 2016-12-30
  • linux用户和用户组

    一、用户和组 1、用户账号类型 在Linux系统中,根据系统管理的需要将用户账号分为不同的类型,其拥有的权限、担任的角色也各不相同。主要包括超级用户、普通用户和程序用户。 【超级用户】:root用户是Linux系统中默认的超级用户账号,对本主机拥有最高的权限,类似于Windows系统中的Administrator用户。只有当进行系统管理、维护任务时,才建议使…

    Linux干货 2017-07-22
  • Linux文件系统及文件管理相关命令

    一、Linux文件系统介绍: Linux文件系统叫做根文件系统(rootfs): root filesystem。文件系统从根目录下开始,用“ /”表示。文件和目录被组织成一个单根倒置树结构。文件系统分层遵循FHS(Filesystem Hierarchy Stantartd)。标准的Linux文件系统,文件名严格区分大小写。使用“/”分割路径。 …

    Linux干货 2016-07-29
  • linux用户权限管理

       在linux文件系统中使用ls -l命令可以查看文件的属性,但是我们明白其中属性各自代表的意思吗?下面我们就来看一看,这其中的奥义。。。 文件属性 使用ls命令查看文件,可以发现列表分为几个部分,各自所代表的意义如图所示: 文件属性操作     chown 设置文件的所有者  &nb…

    Linux干货 2016-08-04
  • 文件相关操作练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限: 2、编辑/etc/group文件,添加组hadoop: 3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop: 4、复制/etc/sk…

    2017-11-17
  • 第一篇博客,以下。

    一、 linux 你好!    学习linux的心情。        又一次接触了linux,内心还是很忐忑的。记得大二学过半学期的linux,那是一门考查课,所以可想而知学的是三天打鱼两天晒网。也不知道是怎样的机缘,让我在一年后又一次遇见了它。我想说,虽然你…

    2017-07-15