centos6启动流程详解

当我们在平常的工作学习的环境中使用linux时,我们只需要按一下开机键,系统就会自动为我们加

载好相关配置,然后为我们打开操作界面,那么在这个过程中究竟都发生了什么,如果系统突然起不来

了,那么到底是启动时的哪一部分发生了错误呢,下面,我们就来看看linux中的centos6启动的具体流

程。

centos6启动流程大致分为以下这些步骤:

   

1.加电自检,得到BIOS的硬件信息,获取第一个启动设备

2.读取第一个启动设备MBR的引导加载程序(grub)的启动信息

3.加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备

4.运行init程序

5.运行系统初始化脚本  /etc/rc.d/rc.sysinit

6.启动核心的外挂模块

7.init执行运行各个批处理文件

8.init执行/etc/rc.d/rc.local

9.执行/bin/login程序,等待用户登录

10.登陆之后,打印登陆提示符,并开始shell控制主机

下面我们来分别解释下每一步的具体细节


1.加电自检

当我们按下电源键后,rom芯片中的CMOS程序开始执行并检测CPU,内存等设备是否存在并正常运

行,CMOS中的程序叫做BIOS,可以设置硬盘接口,网卡声卡开关之类的简单设置。一般PC主机板上会有

一个纽扣电池,它的主要作用就是给BIOS供电,当系统由于突然停电或者其其他原因意外断电的时候,

这个纽扣电池可以保证主板在断电后BIOS的一些基本设置不会被重置。


2.读取MBR的启动信息


  计算机不是人类,他的所有操作都是认为的事先设定好的,所以当启动计算机的时候,它并不知道

系统放在哪里,我们需要告诉它,怎么告诉它呢,就是用程序引导它,这个程序叫做bootloader,不同

的操作系统的bootloader是不同的,windos使用的bootloader是ntloader,只能对windos系统进行引

导,而在linux中的bootloader叫做GRUB,它不仅可以对linux进行引导,也可以对windos进行引导,所

以在装windos和linux双系统的电脑的时候,要先装windos再装linux。

MBR记录一般在磁盘0磁道1扇区,一共512个字节,前446个字节是Bootloder,后64个字节是存放

分区信息的,一共四个分区,每个分区占用16个字节,最后两个字节是分区结束信息,一般是55AA.

所以,当加点自检完成后,会启动bootloader也就是grub程序,他会引导计算机到磁盘的第一个扇

区并加载MBR记录,然后按照MBR记录启动系统。

3.加载核心信息,尝试驱动所有的硬件设备

       

       当加载完MBR的启动信息后,系统会进行自身初始化,首先它会侦测所有可识别到的

硬件设备,然后会借助于ramdisk加载硬件驱动程序,接着以只读方式挂载根文件系统,最

后运行用户空间的第一个程序/sbin/init。那么,什么是ramdisk呢?

ramdisk是内核中的特性之一,它使用缓冲和缓冲加速来对硬盘上的文件进行访问,并

且加载相应的硬件驱动程序。

4.运行init程序

init程序是系统启动的时候,第一个运行的程序,我们都知道任何程序都有自己的父程序,一旦父程

序被关闭,那么该程序也将无法运行,而init程序就是系统中所有程序的祖宗程序。

5.运行系统初始化脚本 

当init程序启动后,它做的第一件事就是运行 /etc/rc.d/rc.sysinit,也就是系统初始化脚本,那么运行这个脚本能做什么呢?

(1) 设置主机名

(2) 设置欢迎信息

(3) 激活udev和selinux

(4) 挂载/etc/fstab文件中定义的文件系统

(5) 检测根文件系统,并以读写方式重新挂载根文件系统

(6) 设置系统时钟

(7) 激活swap设备

(8) 根据/etc/sysctl.conf文件设置内核参数

(9) 激活lvm及software raid设备

(10) 加载额外设备的驱动程序

(11) 清理操作

6.启动核心的外挂模块

7.init执行运行各个批处理文件

当核心的外挂模块被启动后,init会执行各个批处理文件,这些批处理文件位于如下目录中

这些文件夹分别对应级别0到级别6,我们进入rc5.d中查看有哪些文件

而如果我们使用ls -al命令查看,可以发现这些文件其实都是软连接


   

他们其实都指向一个一个的服务脚本,其中K代表此服务开机不自动启动,S代表开机自动启动,

后面的数字代表了启动的顺序。

8.执行rc.local文件

rc.local也是一个脚本。该脚本是在系统初始化级别脚本运行之后再执行的,因此我们可以安全地在里面添加在

系统启动之后执行的脚本。例如的我们可以在里面添加fstab挂载脚本。此外,我们可以在里面添加一些调试用的脚

本命令。

rc.local脚本是在启动过程中较后执行的,在正常级别下,最后一个启动服务S99local是指向lrc.local脚本,我们

可以将不方便或者不需要写为服务脚本的脚本放置于rc.local文件中,他是用户自定义的一些设置。

9.执行/bin/login程序,等待用户登录


出现登陆界面,选择用户后,输入登录密码即可登录


10.登陆之后,打印登陆提示符,并开始shell控制主机   

时间: 2024-12-29 12:02:09

centos6启动流程详解的相关文章

Linux启动流程详解【转载】

在BIOS阶段,计算机的行为基本上被写死了,可以做的事情并不多:一般就是通电.BIOS.主引导记录.操作系统这四步.所以我们一般认为加载内核是linux启动流程的第一步. 第一步.加载内核 操作系统接管硬件以后,首先读入 /boot 目录下的内核文件. 我们查看一下,/boot 目录下面大概是这样一些文件: 第二步.启动初始化进程 内核文件加载以后,就开始运行第一个程序 /sbin/init,它的作用是初始化系统环境. 由于init是第一个运行的程序,它的进程编号(pid)就是1.其他所有进程都

linux启动流程详解、破解root密码、添加服务脚本

1.Linux的组成 kernel+rootfs kernel:进程管理.内存管理.网络管理.安全管理.文件系统管理.驱动程序 rootfs:程序和glibc 库:函数集合,function,调用接口(头文件负责描述) 过程调用:procedure  ,无返回值 结果调用:function 程序:二进制文件 2.内核设计流派 单内核(monolithic kernel):Linux 把所有功能集成于同一个程序 微内核(micro kernel):Windows, Solaris 每种功能使用一个

redhat 5开机启动流程详解

(1)POST(Power On Self Test) 加电自检 电脑主机打开电源的时候随后会听到滴的一声响系统启动开始了开机自检POST. 自检开始这个过程中主要是检测计算机硬件设备比如CPU内存主板显卡等设备是否有故障存在.如果有硬件故障的话将按两种情况理对于严重故障(致命性故障)则停机此时由于各种初始化操作还没完成不能给出任何提示或信号对于非严重故障则给出提示或声音报警信号等待用户处理如果没有故障POST完成自己的接力任务将尾部工作交接给BIOS处理. (2)BIOS(bootloader

CentOS系列启动流程详解

一.Linux启动内核文件 1.Linux系统组成 动态视角:内核+根文件系统 静态视角:磁盘分区+相关文件 2.Kernel特点 (1)支持某块化:.ko (kernel object)文件 (2)支持模块运行时动态装载或卸载: 总结:Linux kernel在但内核设计模型上,吸取了多内核设计的优点,使用了模块化设计 单内核设计:把所有功能集成于同一个程序:如Linux 微内核设计:每种功能使用一个单独的子系统实现:如Windows, Solaris 2.kernel组成 (1)核心文件 1

Spring Boot启动流程详解(一)

环境 本文基于Spring Boot版本1.3.3, 使用了spring-boot-starter-web. 配置完成后,编写了代码如下: @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } @RestController public class RootCont

计算机开机启动流程详解

一.BIOS 1.BIOS是什么 BIOS:基本输入输出系统(Basic Input Output System),它是一组固化到计算机内主板上一个ROM(Read-Only Memory)只读存储器,不需要供电就可保持数据不丢失芯片上的程序,BIOS保存着计算机最重要的基本输入输出的程序.系统设置信息.开机上电自检程序和系统启动自检程序. 2.BIOS的功能及作用 a.POST上电自检及初始化:执行不同初始化和计算机硬件检测的函数或例程,开机后BIOS最先被启动,然后它会对电脑的硬件设备(CP

linux启动流程详解

一.为什么要研究linux系统启动: 或 许有人会说,等它开机就好了,为什么还要研究它开机流程呢,其实如果服务器运行很好又没有人为的误操作等,或许不用研究,但是为了能在系统出问题后第一时 间的修复它,又或者你忘记了root密码等情况时就非常有必要研究一下linux的开机流程了,因为只有知道了它是如何运作的,才能让它更好的服务与人 类,废话不多说,正文开始 二.系统启动流程: 不同的版本的linux系统开机可能不同,但是总的来说,大同小异,下面就以centos6.8的系统为例,介绍linux的开机

CentOS 5,6 系统启动流程详解

一.linux 组成介绍 1.linux 组成: Linux: kernel+rootfs(根文件系统) kernel: 进程管理.内存管理.网络管理.驱动程序.文件系统.安全功能 rootfs: 程序和glibc 库:函数集合, function, 调用接口(头文件负责描述) 过程调用: procedure,无返回值 函数调用: function 程序:二进制执行文件 2.内核设计流派: 单内核(monolithic kernel): Linux 把所有功能集成于同一个程序 微内核(micro

CentOS6 启动流程图文解剖

我们在使用Linux操作系统的时候,我们只需按下电源键,等待,然后输入账户和密码就可以使用Linux操作系统了.那么在按下电源到输入账号和密码之前,操作系统都做了些什么?下面就来讲述在这段时间发生的动作. 下面以CentOS6系列为例来讲解Linux的启动流程. 一.Linux启动流程详解 下图就是启动流程的大致过程: 二.POST加电自检 POST(PowerOnSelfTest)首先对每一个设备进行检查.完成后会寻找存有引导记录的设备,找到后读入操作系统引导记录,然后将系统控制权交给引导记录