硬件启动阶段
1、UEFI/BIOS初始化:当按下电源键后,计算机首先会进行UEFI或BIOS(基本输入输出系统)初始化,这一过程包括对CPU、内存、硬盘等硬件设备的检测和初始化。
2、POST自检:完成硬件初始化后,计算机会执行POST(加电自检),检查各个外围硬件设备是否正常工作。
GRUB2引导阶段
1、选择启动设备:根据BIOS中的设置,计算机会选择一个启动设备(如硬盘、光盘、U盘或网络)来加载MBR(主引导记录)。
2、加载GRUB2:MBR中存储的是GRUB2引导程序,它会被加载到内存中并执行。
3、解析配置文件:GRUB2会解析其配置文件(如/boot/grub2/grub.cfg),并根据配置加载内核模块到内存。
4、构建虚拟根文件系统:GRUB2会构建一个虚拟的根文件系统,为内核提供必要的环境。
内核引导阶段
1、加载内核:GRUB2将控制权交给内核,内核开始执行。
2、切换根文件系统:内核会挂载真正的根文件系统,并卸载之前由GRUB2构建的虚拟根文件系统。
systemd初始化阶段
1、执行默认target配置:systemd是CentOS7中的初始化进程,它会执行默认的target配置文件(如/etc/systemd/system/default.target),该文件是一个软链接,指向实际的运行级别(如multiuser.target或graphical.target)。
2、初始化系统:systemd会执行sysinit.target来初始化系统和basic.target来准备操作系统。
3、启动本机服务:在multiuser.target下,systemd会启动本机服务,并检查/etc/rc.d/rc.local文件是否有用户自定义脚本需要启动。
4、执行登录服务:systemd会执行multiuser.target下的getty.target及登录服务,允许用户登录系统。
CentOS7的开机流程涉及多个步骤和组件,从硬件启动到GRUB2引导,再到内核引导和systemd初始化,每个阶段都扮演着重要的角色,了解这些流程有助于更好地理解Linux系统的启动机制,并在遇到问题时进行有效的排查和解决。