RHEL7启动流程
CentOS7 和 CentOS6 启动流程差不多,只不过到 init 程序时候,改为了 systemd,因此详细解释一下 systemd 后的
启动流程
1.uefi 或 BIOS 初始化,开始 post 开机自检
2.加载 mbr 到内存
3.GRUB 阶段
4.加载内核和 inintamfs 模块
5.内核开始初始化,使用 systemd 来代替 centos6 以前的 init 程序
(1)执行 initrd.target
包括挂载/etc/fstab 文件中的系统,此时挂载后,就可以切换到根目录了
(2)从 initramfs 根文件系统切换到磁盘根目录
(3)systemd 执行默认 target 配置
centos7 表面是有“运行级别”这个概念,实际上是为了兼容以前的系统,每个所谓的“运行级别”都有对应的软连接指
向,默认的启动级别时/etc/systemd/system/default.target,根据它的指向可以找到系统要进入哪个模式
模式:
0 ==> runlevel0.target, poweroff.target
1 ==> runlevel1.target, rescue.target
2 ==> runlevel2.target, multi-user.target
3 ==> runlevel3.target, multi-user.target
4 ==> runlevel4.target, multi-user.target
5 ==> runlevel5.target, graphical.target
6 ==> runlevel6.target, reboot.target
(4)systemd 执行 sysinit.target
有没有很眼熟?是的,在 CentOS6 上是被叫做 rc.sysint 程序,初始化系统及 basic.target 准备操作系统
(5)systemd 启动 multi-user.target 下的本机与服务器服务
(6)systemd 执行 multi-user.target 下的/etc/rc.d/rc.local
6.Systemd 执行 multi-user.target 下的 getty.target 及登录服务
getty.target 我们也眼熟,它是启动终端的 systemd 对象。如果到此步骤,系统没有被指定启动图形桌面,到此就可
以结束了,如果要启动图形界面,需要在此基础上启动桌面程序
7.systemd 执行 graphical 需要的服务