第一阶段:

BIOS启动引导

主板加电,系统自动载入BIOS(Basic Input Output System)系统

BIOS载入CMOS,读取CMOS中设定的硬件工作参数

BIOS进行POST自检,对各种硬件设备进行检测.

BIOS进行硬件检测的初始化

BIOS定义开机设备顺序

第二阶段:

bootloader(grub)

操作系统启动的第一个重要部分是核心的启动.而核心的启动需要让系统知道核心在哪里.

这时需要Boot loader来实现核心的载入.

所以BIOS下一步是找到Boot loader并启动.

stage1(MBR)

通常Boot loader是被固定装载在启动磁盘的第1个扇区(sector)的512字节范围内

这512字节的区域的名字就叫做MBR(Master Boot Record,主引导记录)

linux 5,6使用的Boot loader的名字就叫grub

但由于其特殊性,grub的组成部分是被分散安装在磁盘的多个区域的.第一个扇区512字节中的446字节就是grub的stage1内容.

MBR就是stage1就是第一扇区,其中内容非常简单,仅仅是告诉BIOS,去加载第二扇区的内容并执行

stage1.5

简单来说第二扇区的内容也很简单,就是去读第三扇区的stage1.5,执行第三扇区内容后,内存中就有了文件系统支撑代码,此时便能够通过文件系统查找文件了.

第二扇区的内容有两种情况

1)内容是grub的stage1.5,stage1.5的内容与/boot/grub/xxx_stage1_5文件源码的开头512字节内容相同,xxx是什么取决于启动磁盘的文件系统,比如e2fs_stage1_5.而这部分内容的作用就是取出第三扇区之后的部分内容,这些内容便是文件系统支撑代码,于是当stage1.5被执行后,系统便可以识别文件系统,并通过文件系统访问磁盘文件了.此后会读取/boot/grub/stage2文件将stage2文件载入系统并执行.

2)第二扇区直接加载存放在/boot分区启动扇区的stage2而不是/boot/grub/stage2.此时如/boot/grub/stage2丢失,也不会影响启动.系统默认是这个模式,修复grub时,在grub交互式模式中,使用install命令可以恢复这种模式.

通常我们做实验时第一次删除了/boot/grub/stage2文件后,系统是可以正常启动的.因为默认是上面第二种情况,而通常我们修复的时候使用了grub三种安装方式中的前两种比较快捷方便的方法即: 1.grub-install 2.grub>setup ,而这两种方法会把第二扇区恢复为上面的第一种情况.这时如果再删除/boot/grub/stage2文件,则无法启动并且会报 error 15 错误. 如果想恢复到第二种模式,需要使用grub的install命令,即grub的第3种安装方法,grub>install. 具体使用方法可以gg暂不详述.

stage2

系统执行stage2,stage2会通过grub.conf配置文件生成启动菜单并读取内核,initrd,解压缩并载入内存.

第三阶段:

内核

此时内核已启动,开始检测硬件,但后续的工作还需要initrd来协助.initrd是一个基于内存的虚拟文件系统 (Initial RAM Filesystem) 在Centos5上的具体文件名为 /boot/initrd ,Centos 6中为 /boot/initramfs ,执行后会生成一个临时根目录,里面包含了除集成在kernel以外的,当前系统所需的各种驱动程序.系统会加载这些驱动,最后释放这个虚拟文件系统,切换到真正的根上并执行系统1号进程/sbin/init.

第四阶段:

init

init读取配置文件/etc/inittab,按照配置文件执行一系列初始化操作

1.初始化脚本/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) 清理操作

2.确定运行级别

3.运行/etc/rc.d/rcN.d/下的服务,N为数字,对应准备启动的系统运行级别,里面的内容为K和S开头的指向/etc/rc.d/init.d目录下的服务脚本.S开头为开机启动的服务,K开头的为关闭当前运行模式时运行需要执行的脚本(切换模式,关机等),S或K后面的数字越小,优先级越高.

4.运行/etc/rc.d/rc.local脚本,这个脚本是用户自定义执行脚本,S99local就是rc.local的软连接.

5.最后执行终端或X-window.之后用户便可以登陆

CentOS 6 系统启动流程的更多相关文章

  1. CentOS系统启动流程

    CentOS系统启动流程 POST --> Boot Sequence(BIOS) --> Boot Loader(MBR) --> kernel(ramdisk) --> r ...

  2. CentOS系统启动流程你懂否

    一.Linux内核的组成 相关概念: Linux系统的组成部分:内核+根文件系统 内核:进程管理.内存管理.网络协议栈.文件系统.驱动程序. IPC(Inter-Process Communicati ...

  3. CentOs 系统启动流程相关

    CentOS的启动流程 1)加载BIOS 的硬件信息,获取第一个启动设备 2)读取第一个启动设备MBR 的引导加载程序(grub) 的启动信息 3)加载核心操作系统的核心信息,核心开始解压缩,并尝试驱 ...

  4. Linux:Day13(上) CentOS系统启动流程

    CentOS 5和6的启动流程 Linux:kernel+rootfs kernel:进程管理.内存管理.网络管理.驱动程序.文件系统.安全功能 rootfs: glibc 库:函数集合,functi ...

  5. (转)CentOS系统启动流程图文详解

    CentOS系统启动流程图文详解. 原文:http://www.linuxidc.com/Linux/2017-03/141966.htm 熟悉系统启动流程对于我们学习Linux系统是非常有帮助的,虽 ...

  6. 13.1 CentOS系统启动流程介绍

    CentOS系统启动流程介绍 本章我们将学习 Linux 启动流程和内核模块管理相关的内容.通过本章我们将学习如下内容: Linux 系统的组成及特点 CentOS 系统的启动流程 开机启动成 gru ...

  7. Linux系统启动流程及安装命令行版本

    Debian安装 之前也安装过很多次linux不同版本的系统,但安装后都是直接带有桌面开发环境的版本,直接可以使用,正好最近项目不是很忙,想一直了解下Linux的整个启动流程,以及如何从命令行模式系统 ...

  8. Linux第八讲随笔 -tar / 系统启动流程

    linux 第八讲1.tar 参考 作用:压缩和解压文件.tar本身不具有压缩功能.他是调用压缩功能实现的. 语法:tar[必要参数][选择参数][文件] 参数:必要参数有如下: -A 新增压缩文件到 ...

  9. 20190411RAID磁盘阵列及CentOS7系统启动流程

    RAID磁盘阵列及CentOS7系统启动流程(week2_day3)   RAID概念 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构 ...

随机推荐

  1. [C语言]链表实现贪吃蛇及部分模块优化

    在继上篇[C语言]贪吃蛇_结构数组实现大半年后,链表实现的版本也终于出炉了.两篇隔了这么久除了是懒癌晚期的原因外,对整个游戏流程的改进,模块的精简也花了一些时间(都是借口). 优化模块的前沿链接: · ...

  2. JAVA标签

    java没有GOTO,可以通过标签实现跳转. 在 Java 里唯一需要用到标签的地方就是拥有嵌套循环,而且想中断或继续多个嵌套级别的时候. 使用位置:用在循环语句之前.----它实际需要紧靠在循环语句 ...

  3. 如何去组织你的CSS代码

    1.Object Oriented CSS (OOCSS) 面向对象的 CSS.OOCSS 的想法首先要明白 CSS 的 “Object” 是个毛线玩意. CSS的样式是需要应用到页面的结构上的.通俗 ...

  4. WebUtility(提供在处理 Web 请求时用于编码和解码 URL 的方法。)

    public static string UrlEncode( string str ) UrlEncode(String) 方法可用来编码整个 URL,包括查询字符串值. 如果没有编码情况下,如空格 ...

  5. Jquery Ajax 复杂json对象提交到WebService

    在ajax的已不请求中,常常返回json对象.可以利用json.net给我们提供的api达到快速开发. 例子: using System;using System.Collections;using ...

  6. Rest架构下的增删改查

    首先还是要连接一下什么是Rest, REST是英文representational state transfer(表象性状态转变)或者表述性状态转移;Rest是web服务的一种架构风格;使用HTTP, ...

  7. 【SSH网上商城项目实战27】域名空间的申请和项目的部署及发布

     转自:https://blog.csdn.net/wwww_com/article/details/54405355 前面陆陆续续的完成了网上商城的一些基本功能,虽然还有很多地方有待完善,但是不影响 ...

  8. K:汉诺塔问题

    相关介绍:  汉诺塔问题是一个通过隐式使用递归栈来进行实现的一个经典问题,该问题最早的发明人是法国数学家爱德华·卢卡斯.传说印度某间寺院有三根柱子,上串64个金盘.寺院里的僧侣依照一个古老的预言,以上 ...

  9. slider轮播插件的多种写法

    slider轮播插件相信大家经常会用到,写法也是各种各样,大部分都是用的第三方提供的组件使用,如果想基于自己的业务特点封装个组件供自己使用的话就要自己封装组件了,网上看了大部分写法都是通过js控制do ...

  10. reac——父组件向子组件传递值,子组件何时能同步获得父组件改变后的值

    //这里是父组件的代码:export default class HeaderCom_son extends React.Component { constructor(props) { super( ...