CentOS 5 CentOS 6 启动流程及关键步骤
CentOS 5 CentOS 6 启动流程及关键步骤
1、加电自检:当打开主机电源时,主机会唤醒cpu,使其运行CMOS中的BIOS,
BIOS检查必要的硬件是否存在(内存、硬盘等)
BIOS其实是一个小型系统,可以完成一些像检测这样的任务。
自检若不通过,关机
2、BIOS查找可启动设备
自检通过,根据BIOS设定的启动顺序(一般有硬盘启动、光盘启动、移动设备启动、以及网络启动等,这个设定值可通过人工干预修改以使加载不同的系统)找到第一个具有引导程序(bootloader)即为要加载的设备,否则继续查找
3、MBR引导
引导程序在windows中叫ntloader,在linux早期叫LILO,LInux Loader,在CentOS5,6等版本便为GRUB 0.x,GRUB legacy,bootloader是在MBR(512字节)的前446个字节,紧接着64字节是分区表、剩余两个字节表示分区表是否可用
4、GRUB查找要加载的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 启动流程及关键步骤相关推荐
- CentOS 5.X 开机启动流程
转载于:https://blog.51cto.com/ahhsong/1967989
- [从零开始学习FPGA编程-7]:快速入门篇 - 总体 - FPGA产品开发简化流程、关键步骤解读
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...
- linux开机dracut界面_#23 centos5(RHEL)系列操作系统的启动流程、与命令mkinitrd、dracut的使用...
centos(RHEL)系列操作系统的启动流程:Intel x86兼容架构: Linux的系统组成:内核 + 应用程序 GUN/Linux:单纯的指Linux内核: 从硬盘存储和启动操作系统的角度: ...
- 高通8996启动流程-2.总体启动流程
1.前言 本文档主要对MSM8996的启动流程进行一个简要的分析,目的在于展现启动流程的概貌,不会对每个细节做很详细的表述,但会对启动流程的关键节点进行重点说明.本文主要通过框图的方式展现bootlo ...
- 高通8996启动流程-3. sbl1启动流程
目录 1. 前言 2. sbl1总体流程 3.sbl1_main_ctl(pbl_shared)流程 4. boot_config_process_bl 4.1 Execute pre_procs 4 ...
- 高通8996启动流程-1.概述
1.前言 本文档主要对MSM8996的启动流程进行一个简要的分析,目的在于展现启动流程的概貌,不会对每个细节做很详细的表述,但会对启动流程的关键节点进行重点说明. 2.关键术语 Hexagon Dig ...
- 高通8996启动流程-4. lk启动之boot_linux_from_mmc
1.前言 本文档主要对MSM8996的启动流程进行一个简要的分析,目的在于展现启动流程的概貌,不会对每个细节做很详细的表述,但会对启动流程的关键节点进行重点说明.在lk正常启动时会进入boot_lin ...
- EOS主网启动流程实践及分析(搭建自己的EOS多节点测试主网)
昨晚在细看ram消耗的问题时候,搭建了完整的测试主网,经过更新,发现现在的搭建过程还是很便利的,于是刚刚整理了下,希望对大家有帮助. EOS dawn-v4.1.0版本开始就有EOS主网启动教程项目了 ...
- Quartz 的启动流程分析
一.简要 1.1.quartz 的核心元素 Scheduler为调度器负责整个定时系统的调度,内部通过线程池进行调度,下文阐述. Trigger为触发器记录着调度任务的时间规则,主要有四种类型:Sim ...
最新文章
- MFC单文档的背景上绘制一个可以自动显示文字的长方形
- mybaits十二:使用collection嵌套结果集查询
- vc2005运行库彻底卸载_解决不安装VC运行库(VC2005,VC2008),程序运行出错的方法...
- 小伙伴们惊呆了!10行 JavaScript 实现文本编辑器
- 【学术相关】为什么吐槽导师的帖子几乎全是理工科类?文科的研究生都在干嘛?...
- php 面相对象设计,PHP面向对象设计的规范
- 电子商务网站 数据库产品表设计方案
- hp刀片服务器性能分析,IBM刀片服务器与高性能计算-20210723075634.ppt-原创力文档...
- flash swf文件 网页播放功能方案实现
- App自动绑定的五大应用场景
- SSM(Spring+SpringMVC+Mybatis) 整合
- 搜狗浏览器显示服务器dns,为你设置win10系统下搜狗浏览器无法解析服务器的dns地址的处理对策...
- 日系插画学习笔记(十):色彩基础
- echarts 时间轴处理_echarts 带时间轴可缩放的折线图
- CMDN CLUB#27期:移动教育主题沙龙PPT分享
- SAXReader解析器--xml字符串文件解析
- React 官网入门教程 - 井字棋小游戏
- 四川大学计算机学院团委学生会,团委学生会
- 集五福开始了 | 如何用5分钟集满五福
- JVM-前端编译与优化