RHCSA回忆录——Linux启动过程
了解:老版本Linux系统的init启动过程
  1. 主机启动并进行硬件自检后,读取硬盘MBR中的启动引导程序,并进行加载legacy grub;

MBR是放在硬盘的第一个扇区,一共512字节,可以分成两部分:

主引导记录:安装启动引导程序的地方,446字节

分区表:记录整个硬盘分区的的状态此外,64字

  1. 启动引导器程序负责引导硬盘中的操作系统,根据用户在启动菜单中选择项不同,可以引导不同的操作系统,引导加载程序负责加载内核和初始 RAM 磁盘(initramfs)到内存中;
  2. Linux的内核程序(立即初始化设备和内存)负责操作系统启动的前期工作,并进一步加载系统的INIT进程;
  3. INIT进程是Linux系统中运行的第一个进程,该进程根据其配置文件/etc/inittab执行相应的启动程序,并进入指定的系统运行级别;
  4. 在不同的运行级别中,根据系统的设置将启动相应的服务程序;
  5. 在启动过程的最后,将运行控制台程序提示并允许用户输入账号和口令进行登录。
RHEL9的启动过程
  1. 计算机通电。系统固件(UEFI或 BIOS)开机自检(POST),并初始化部分硬件。
  2. 系统固件搜索可启动设备,可能在 UEFI启动固件中配置,也可能在 BIOS 中配置的磁盘主启动记录(MBR)。
  3. 系统固件从磁盘读取 boot loader,然后将系统控制权交给 boot loader。RHEL9 中,boot loader 为 GRand Unified Bootloader version 2(GRUB2),
  4. GRUB2 基于 /boot/grub2/grub.cfg(BlOS)和/boot/efi/EFl/redhat/grub.cfq(UEFI)加载配置并显示一个菜单,从中选择要启动的内核。grub.cfg 由使用 /etc/grub.d/目录、/etc/default/grub 文件和 grub2-mkconfig 命令进行配置。
  5. 选择内核或超时到期后,boot loader 会从磁盘中加载 kernel和initramfs,放入内存中。initramfs 中包含启动时所有必要硬件的内核模块、初始化脚本等。在 RHEL9 中,initramfs 包含自身可用的整个系统。
  6. boot loader 将控制权交给内核,传递 boot loader 的内核选项,及initramfs。
  7. 内核会初始化 initramfs中含有驱动的所有硬件, initramfs 中的/sbin/init 以 PID1启动。在 RHEL9 中,/sbin/init 是一个指向systemd 的链接。
  8. initramfs 中的 systemd 会执行 initrd.target 中所有 unit。包括将磁盘上的根文件系统挂载到 /sysroot 目录。
  9. 内核将根文件系统从 initramfs切换到 /sysroot 中的根文件系统。随后,systemd 使用磁盘中的 systemd 来自行重新执行systemd 会查找系统默认 target (/etc/systemd/system/default.target),然后启动(或停止)/etc/systemd/system/中的 unit。
Linux版本放弃init用systemd,init与systemd有什么区别:

systemd克服init启动服务慢

systemd属于用户空间

systemd对于服务病处理化处理

systemed借助Linux cgroups实现对进程资源的掌控

普通用户环境下可以用systemd管理自己的服务,安全性提升

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇