CentOS 5 CentOS 6 启动流程及关键步骤

1、加电自检:当打开主机电源时,主机会唤醒cpu,使其运行CMOS中的BIOS,

BIOS检查必要的硬件是否存在(内存、硬盘等)

BIOS其实是一个小型系统,可以完成一些像检测这样的任务。

自检若不通过,关机

2BIOS查找可启动设备

自检通过,根据BIOS设定的启动顺序(一般有硬盘启动、光盘启动、移动设备启动、以及网络启动等,这个设定值可通过人工干预修改以使加载不同的系统)找到第一个具有引导程序(bootloader)即为要加载的设备,否则继续查找

3MBR引导

引导程序在windows中叫ntloader,在linux早期叫LILO,LInux Loader,在CentOS5,6等版本便为GRUB 0.x,GRUB legacy,bootloader是在MBR(512字节)的前446个字节,紧接着64字节是分区表、剩余两个字节表示分区表是否可用

4GRUB查找要加载的kernel

此处以C5 C6为例,GRUB的主要作用是提供一个菜单,允许用户选择要启动系统或不同的内核版本,把用户选定的内核装载到内存的特定空间中,解压展开,并把系统控制权移交给内核,一台主机上可能装有不止一个操作系统,用户可以根据GRUB提供的启动菜单选定操作系统,随即加载指定内核

GRUB分为三个阶段,

stage 1  这段代码的其中一段代码是MBR中的 bootloader(446字节),这一步在GRUB 中是不可或缺的,主要负责当BIOS 交接给GRUB 时,载入存在于各分区中的开机文件,也就是所谓的开机管理程序。其大小大约512字节

stage1_5 这段代码是在紧接着MBR的,辅助GRUB识别stage2所在的文件系统所在的磁盘。stage1.5 被加载时,就已经赋予GRUB 访问文件系统目录的能力(这段程序中有访问stage2文件系统的驱动),所以,自然可以在开始找不到stage2 的情况下,从文件系统目录中找出stage2 的所在位置,并激活Linux。

其大小约32K

stage 2  在boot目录中,不一定在根分区上,即,可以独立分区;

stage提供一个GRUB启动菜单,供用户选择不同的操作系统选择不同的操作系统

提供选项,访问配置文件、连接下一个bootsector(主机上可能装的不止一个系统,,可能,可以手动选择启动哪个系统,也可以修改其配置文件以达到不同效果)stage2主要就是根据配置文件,或手动选择、设置启动需要的内核或系统!

在系统读秒的过程中按任意键可进入GRUB选择菜单,如下图,假如你的主机中不止一个操作系统,你可以根据需要选择不同的操作系统;

仔细看菜单下面的选项,键入e键,可在开机前进入编辑模式,如下图,

方框内第一行代表boot目录所在的位置,此处为第一个磁盘第一个分区,

方框内第二行就是你的内核位置及内核,

方框内第三行ramdisk(ramfs),这是一个虚拟文件系统,可通过这个文件系统可找到根分区位置 以方便内核找到根分区、init程序、以及必要的驱动程序、库文件

在这个界面,如果再次键入e键,可对你选择的选项进行修改!

在这两个界面中你也可以按c进入GRUB的命令

在以上两个界面中你也可以按c进入GRUB的命令行模式

这样手动指定内核及initrd也能启动系统

5、加载内核S

GRUB通过GRUB2找到内核及ramdisk,GRUB将CPU的控制权交给内核;CPU将内核加载到内存中;此刻内核将是系统的主角,控制着整个操作系统,CPU探测可识别的所有硬件设备,将ramdisk中加载到内存中;kernel借助ramdisk找到真正的根分区,以只读方式挂载根文件系统;完成根切换。

linux内核是单内核体系设计,但又引入了模块化机制;一般有内核核心(/boot/vmlinuz)、内核对象(lib/modules/VERSION-RELEASE)、辅助文件(/boot/[initrd|initramfs])组成

kernel的功能:进程管理、内存管理、文件系统管理、网络管理、驱动程序管理、安全功能

ramdisk具有根文件系统驱动、根文件系统,是在安装系统时根据根分区文件系统及硬件的驱动动态生成的

ramdisk在CentOS5(initrd)上是以一个磁盘的格式存在的,CPU与之传输时还要经过层层缓存,因此比较慢;而在CentOS 6(initramfs)上,则以一个文件系统的身份运行,文件系统自身具有缓存功能,无需缓存,因此较快,其磁盘位置一般为(/boot/initrd-VERSION-RELEASE.img 或/boot/initramfs-VERSION-RELEASE.img)

ramdisk文件可通过mkinitrd或dracut命令制作,制作原理同安装系统时的动态生成

6、运行/sbin/init

int是所有进程的起点,init程序负责创建进程和销毁进程

init程序在CentOS5 中SysV(服务串行运行,较慢)配置文件在/etc/initab中,在CentOS6中为Upstart(接近于并行运行,较快),配置文件为/etc/inittab和/etc/init/*.conf

linux具有七个运行级别:

init0         相当于关机

init1         单用户模式(root无需登录)single,维护模式

init2         多用户模式,默认会启动网络功能,但不会启动NFS,维护模式

init3         多用户模式,正常模式;文本界面

init4        预留级别,正常模式;图形界面

init5         多用户模式,图形界面

init6         相当于重启

配置文件 /etc/inittab下内容的定义

id:runlevel:action:process

id:3:initdefault                                       表示默认开机级别为3,自动进入字符界面

si::sysinit:/etc/rc.d/rc.sysinit             系统初始化

l#:#:wait:/etc/rc.d/rc 0                   当键入init #时,进入该运行级别

tty1:2345:respawn:/usr/sbin/mingettytty1        在2345级别下运行中端tty1

注:CentOS6是靠/etc/init/rcS.conf启动服务的

当进入指定级别时,运行指定级别下的服务,指定级别下有服务脚本链接,当进入指定级别式,会运行其目录下的(k/s开头的kill或start脚本)

也可以手动修改、删除或添加某级别下的服务(chkconfig)

7、系统初始化

根据/etc/rc.d/rc/rc.sysinit/系统初始化脚本实现的

(1)      设置主机名

(2)      设置欢迎界面

(3)      激活udev和selinux

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

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

(6)      设置系统时钟

(7)      激活swap设备

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

(9)      激活lvm及software raid设备(硬raid是在开机时启动的)

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

(11)  清理操作

自此开机完成,系统会在指定级别中运行指定服务

(3)kernel2.4以后(3)中udev主要在系统第一次访问硬件时,根据/sys目录中的文件生成/dev下的内容,以方便管理员管理硬件

(5)在ramdisk的帮助下,kernel第一次将根文件系统以只读方式加载如内存、

它只能读,不能写入数据,这次将以读写方式加载根文件系统

转载于:https://blog.51cto.com/fallcamel/1699646

CentOS 5 CentOS 6 启动流程及关键步骤相关推荐

  1. CentOS 5.X 开机启动流程

    转载于:https://blog.51cto.com/ahhsong/1967989

  2. [从零开始学习FPGA编程-7]:快速入门篇 - 总体 - FPGA产品开发简化流程、关键步骤解读

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  3. linux开机dracut界面_#23 centos5(RHEL)系列操作系统的启动流程、与命令mkinitrd、dracut的使用...

    centos(RHEL)系列操作系统的启动流程:Intel x86兼容架构: Linux的系统组成:内核 + 应用程序  GUN/Linux:单纯的指Linux内核: 从硬盘存储和启动操作系统的角度: ...

  4. 高通8996启动流程-2.总体启动流程

    1.前言 本文档主要对MSM8996的启动流程进行一个简要的分析,目的在于展现启动流程的概貌,不会对每个细节做很详细的表述,但会对启动流程的关键节点进行重点说明.本文主要通过框图的方式展现bootlo ...

  5. 高通8996启动流程-3. sbl1启动流程

    目录 1. 前言 2. sbl1总体流程 3.sbl1_main_ctl(pbl_shared)流程 4. boot_config_process_bl 4.1 Execute pre_procs 4 ...

  6. 高通8996启动流程-1.概述

    1.前言 本文档主要对MSM8996的启动流程进行一个简要的分析,目的在于展现启动流程的概貌,不会对每个细节做很详细的表述,但会对启动流程的关键节点进行重点说明. 2.关键术语 Hexagon Dig ...

  7. 高通8996启动流程-4. lk启动之boot_linux_from_mmc

    1.前言 本文档主要对MSM8996的启动流程进行一个简要的分析,目的在于展现启动流程的概貌,不会对每个细节做很详细的表述,但会对启动流程的关键节点进行重点说明.在lk正常启动时会进入boot_lin ...

  8. EOS主网启动流程实践及分析(搭建自己的EOS多节点测试主网)

    昨晚在细看ram消耗的问题时候,搭建了完整的测试主网,经过更新,发现现在的搭建过程还是很便利的,于是刚刚整理了下,希望对大家有帮助. EOS dawn-v4.1.0版本开始就有EOS主网启动教程项目了 ...

  9. Quartz 的启动流程分析

    一.简要 1.1.quartz 的核心元素 Scheduler为调度器负责整个定时系统的调度,内部通过线程池进行调度,下文阐述. Trigger为触发器记录着调度任务的时间规则,主要有四种类型:Sim ...

最新文章

  1. MFC单文档的背景上绘制一个可以自动显示文字的长方形
  2. mybaits十二:使用collection嵌套结果集查询
  3. vc2005运行库彻底卸载_解决不安装VC运行库(VC2005,VC2008),程序运行出错的方法...
  4. 小伙伴们惊呆了!10行 JavaScript 实现文本编辑器
  5. 【学术相关】为什么吐槽导师的帖子几乎全是理工科类?文科的研究生都在干嘛?...
  6. php 面相对象设计,PHP面向对象设计的规范
  7. 电子商务网站 数据库产品表设计方案
  8. hp刀片服务器性能分析,IBM刀片服务器与高性能计算-20210723075634.ppt-原创力文档...
  9. flash swf文件 网页播放功能方案实现
  10. App自动绑定的五大应用场景
  11. SSM(Spring+SpringMVC+Mybatis) 整合
  12. 搜狗浏览器显示服务器dns,为你设置win10系统下搜狗浏览器无法解析服务器的dns地址的处理对策...
  13. 日系插画学习笔记(十):色彩基础
  14. echarts 时间轴处理_echarts 带时间轴可缩放的折线图
  15. CMDN CLUB#27期:移动教育主题沙龙PPT分享
  16. SAXReader解析器--xml字符串文件解析
  17. React 官网入门教程 - 井字棋小游戏
  18. 四川大学计算机学院团委学生会,团委学生会
  19. 集五福开始了 | 如何用5分钟集满五福
  20. JVM-前端编译与优化

热门文章

  1. Java行为参数化(一)
  2. 写单元测试的好处(转)
  3. Redis 集合处理
  4. Problem C: 类的初体验(III)
  5. javascript 动态创建表格
  6. CentOS 5.5下搭建部署独立SVN服务器全程详解
  7. vb趣味编程弹球小游戏_最好玩的微信小游戏集合,总有一款是你没玩过的
  8. [20190805]在小程序中使用npm包
  9. 数据库IN查询参数化改造的方法
  10. 多层装饰器、带参数装饰器