linux学习之linux系统启动流程(MBR+BIOS)

LINUX系统启动流程

centos6的启动流程

POST --> BootSequence (BIOS)
–> Bootloader(MBR)
–> kernel(ramdisk)
–> rootfs(只读)
–> init(systemd)

1.BIOS(Basic Input and Output System):
上电后电脑内部硬件集成了一部分二进制程序用来POST(Power-On-Self-Test)开机自检,主要检查电脑中CPU、内存、硬盘接口等硬件是否正常;查找硬盘、USB或者网络中是否有引导系统启动的程序。
3.grub bootload启动顺序:
grub stage1:读取MBR
grub stage1.5:读取加载内核所需的文件系统
grub stage2:加载vmlinuz内核和initramfs初始化文件系统。
众所周知,每个系统的都需要内核程序来对整个系统进行调度,Linux系统中采用了微内核模式,即内核和各自的模块(包括文件系统)分开,使得Linux中的内核是十分小的,小到连文件系统都没有,但是内核又需要文件系统才能加载硬盘中的各类硬件的驱动程序,这如何处理?于是就又了一个叫做initramfs的压缩包协助内核实现内核启动。
在这里插入图片描述
4.以硬盘为例,运行bootload引导启动程序后也是需要文件系统才能加载内核(vmlinuz)模块和initramfs文件的加载硬盘的的前446字节读取MBR(stage ),但是446字节明显不足以存放文件系统驱动,其实这446字节的二进制程序是引导bootload到第2个扇区至28个扇区中查找文件系统的,启动的硬盘在做成启动盘时会在第一个扇区存放MBR和为分区预留空间,然后在后27个扇区中存放各类小型的文件系统供bootload读取。(stage 1.5)
在这里插入图片描述
5.读取了文件系统后就开始加载vmlinuzinitramfs了(stage2),那么initramfs又是如何加载磁盘中的文件系统呢?其实initramfs解压后会发现解压出来的目录与系统的根系统的目录十分相似,其实就是一个微型的操作系统,内置了可以读取硬盘文件的驱动程序,initramfs以只读方式挂载了硬盘,并通过读取/etc/fstab获取整个磁盘的挂载情况,如果分区挂载没有问题,initramfs则将内核控制权转交给真正的内核并启动/sbin/init初始化程序开始引导后续程序。
在这里插入图片描述
6.读取/etc/inittab中的启动运行级别如id:3:initdefault,表示启动后运行的runlevel是3
7./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) 清理操作
8.到/etc/rc*.d/中读取启动的默认启动的运行程序
9.到/etc/init.d/rc.local文件中读取加载自定义的启动脚本
10.启动终端服务,开启用户验证等需要的模块。
在这里插入图片描述
附上更为完整的图解地址:http://s4.51cto.com/wyfs02/M02/87/20/wKiom1fVBELjXsvaAAUkuL83t2Q304.jpg

centos7

在引导程序阶段与centos6一致,不同的是centos7的初始化程序用systemd取代了init,而后执行initrd.target所有单元,包括挂载/etc/fstab
从initramfs根文件系统切换到磁盘根目录
systemd执行默认target配置,配置文件/etc/systemd/system/default.target
systemd执行sysinit.target初始化系统及basic.target准备操作系统
systemd启动multi-user.target下的本机与服务器服务
systemd执行multi-user.target下的/etc/rc.d/rc.local
Systemd执行multi-user.target下的getty.target及登录服务
systemd执行graphical需要的服务

通过使用命令systemd-analyze plot>plot.svg生成一个以图表显示的centos7的启动顺序和各个进程消耗的时间
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值