red hat 7 启动过程(EFI)
不同版本的Linux系统的启动过程在某些地方是不一样的,现在先来介绍一下red hat 7 的启动过程(EFI)。
(加电→图形登录界面)
- 接通电源
- 按下电源键
- EFI固件启动
- 初始化硬件
- 从EFI启动配置表
- 根据配置表,在硬盘的EFI系统分区上找到GRUB
- 启动GRUB
- 读取启动分区内的GRUB.cfg
- 确认要加载的操作系统
- 显示画面,等待用户选择操作系统或等待超时后进入默认的操作系统
- 读取启动分区内所选操作系统的内核并加载到内存上
- 初始化内存盘到内存
- GRUB跳转到内存中的内核的启动地址(启动入口)
- 将控制权交于内核
- 内核初始化
- 内核执行自解压操作,将完整内核释放到内存
- 完成后初始化硬件
- 挂在内存中的初始化内存盘
- 启动初始化内存盘中的初始化管理程序(systemd)
- 加载初始化内存盘中存放的内核模块
- 初始化内存盘中的UDEV硬件管理程序
- 根据内核命令行所指定的信息,由UDEV确定启动设备,搜索根目录
- 只读挂载根目录
- 读取目标根目录的fstab,生成systemd设备的配置文件,并通知UDEV确定具体设备
- UDEV等待内核通知设备上线
- systemd等待UDEV设备上线
- systemd根据配置决定是否检查设备上的文件系统
- 挂载设备到fstab指定位置
- 1号进程systemd chroot exec到新根下的目标init(systemd)
- 目标系统systemd启动系统基本服务(single.target)
- 启动多用户模式和网络服务
- 其中启动用户登录管理服务,此服务负责加载用户登录所需要的必须服务,例如:本地控制台登录、图形登录服务程序
- 图形登录界面加载成功,用户可以登录系统