一、BIOS自检
步骤1:上电自检POST(Power-on self test),主要负责检测系统外围关键设备(如:CPU、内存、显卡、I/O、键盘鼠标等)是否正常。例如,最常见的是内存松动的情况,BIOS自检阶段会报错,系统就无法启动起来;
步骤2:步骤1成功后,便会执行一段小程序用来枚举本地设备并对其初始化。
二、.系统引导
MBR,它是Master Boot Record的缩写。硬盘的0柱面、0磁头、1扇区称为主引导扇区。它由三个部分组成,主引导程序(Bootloader).硬盘分区表DPT(Disk Partition table)和硬盘有效标(55AA),
其结构图如下所示:(前446个字符是引导程序,后面的66个是存储
磁盘分区表包含以下三部分:
1)、Partition ID (5:延申 82:Swap 83:Linux 8e:LVM fd:RAID)
2)、Partition起始磁柱
3)、Partition的磁柱数量
bios规定好到mbr找分区信息,0磁道0扇区 是mbr引导程序(谁是主分区,谁是引导分区),grup1.5文件系统的驱动(加载/boot分区驱动),grup2提供界面的程序,grub.conf帮助找到内核
三、启动内核
当stage2被载入内存执行时,它
首先会去解析grub的配置文件/boot/grub/grub.conf,然后加载内核镜像到内存中
,
并将控制权转交给内核。
而
内核会立即初始化系统中各设备并做相关的配置工作,其中包括CPU、I/O、存储设备等。
实际上Linux的内核镜像仅是包含了基本的硬件驱动
,
在系统安装过程中会检测系统硬件信息,根据安装信息和系统硬件信息将一部分设备驱动写入 initrd 。
四、初始化系统
/sbin/init进程是系统其他所有进程的父进程,当它接管了系统的控制权先之后,它首先会去读取/etc/inittab文件来执行相应的脚本进行系统初始化,如设置键盘、字体,装载模块,设置网络等。