Linux 开机启动过程
封面图
•
2025-10-29
•
Linux
129
0
0
0
Linux 系统的开机启动过程是一个从硬件加电到操作系统完全加载并运行的复杂流程。整个过程可以分为以下几个主要阶段: --- ## 一、BIOS/UEFI 启动阶段 **1. 加电自检(POST - Power-On Self Test)** - 计算机加电后,主板上的 **BIOS(Basic Input/Output System)** 或 **UEFI(Unified Extensible Firmware Interface)** 开始运行。 - 执行一系列自检程序,检查硬件是否正常(如内存、硬盘、键盘等)。 **2. 选择启动设备** - BIOS/UEFI 会根据配置顺序尝试从不同的设备(如硬盘、U盘、光盘)中加载引导程序。 - 一旦找到可启动设备,就将控制权交给该设备的 **引导扇区(Boot Sector)** 或 **EFI 引导文件**。 --- ## 二、引导程序阶段(Bootloader) 常见的引导程序有: - **GRUB(Grand Unified Bootloader)** - **LILO(LInux Loader)** - **systemd-boot**(用于 UEFI 系统) **3. 加载引导程序** - 引导程序(如 GRUB)被加载到内存中,并显示启动菜单(如果配置了多系统)。 **4. 选择内核和 initramfs** - 用户选择要启动的 Linux 内核版本。 - 引导程序加载对应的 **内核镜像(vmlinuz)** 和 **初始 RAM 文件系统(initramfs)** 到内存中。 --- ## 三、内核初始化阶段 **5. 内核解压并启动** - 内核从压缩的镜像中解压出来,开始初始化。 - 内核会检测硬件设备(如 CPU、内存、磁盘等),加载必要的驱动程序。 **6. 加载 initramfs(初始 RAM 文件系统)** - `initramfs` 是一个临时的根文件系统,用于挂载真正的根文件系统。 - 它包含必要的工具和驱动,帮助内核挂载真正的根文件系统(如 `/dev/sda1`)。 **7. 挂载根文件系统** - 内核使用 `initramfs` 中的工具挂载真正的根文件系统(如 ext4、xfs 等)。 --- ## 四、用户空间初始化阶段(init 程序) **8. 启动第一个进程:init** - 内核启动的第一个用户空间进程是 `init`,它负责后续的系统初始化。 - 根据系统使用的初始化系统,`init` 可以是: - **SysVinit**(传统方式) - **systemd**(现代主流系统) --- ## 五、systemd 初始化阶段(以 systemd 为例) **9. systemd 启动** - systemd 是 Linux 系统的系统和服务管理器。 - 它负责启动各种服务、挂载文件系统、启动网络等。 **10. 启动目标(Target)** - systemd 会根据默认目标(如 `multi-user.target` 或 `graphical.target`)启动相应的服务。 - `graphical.target` 对应图形界面,`multi-user.target` 对应命令行模式。 **11. 启动系统服务** - systemd 会按照依赖关系依次启动系统服务(如 `sshd`, `network`, `dbus`, `syslog` 等)。 **12. 显示登录界面** - 最终,系统会进入登录界面(如 `getty` 或 `gdm` 图形登录器),等待用户登录。 --- ## 六、用户登录与系统运行 **13. 用户登录** - 用户输入用户名和密码后,系统验证身份。 - 登录成功后,加载用户的 shell(如 bash)或图形环境。 **14. 系统正常运行** - 系统进入正常工作状态,等待用户操作。 --- ## 总结:Linux 开机启动流程图 ``` BIOS/UEFI → 引导程序(GRUB)→ 加载内核和 initramfs → 内核初始化 → initramfs 挂载根文件系统 → init(systemd)→ 启动系统服务 → 显示登录界面 ``` --- 如果你对某个具体阶段(比如 systemd 的 target、grub 配置、initramfs 的作用等)感兴趣,我可以进一步详细解释。
上一篇:
Linux文件描述符?每个描述符的含义?
下一篇:
linux下创建和删除软链接、硬链接
标题录入,一次不能超过6条
留言
评论