Linux 系统启动过程
《Linux 系统启动过程》
🚀 学习目标
- 掌握 Linux 系统从开机到登录的整个启动流程。
- 理解各个阶段的作用,如 BIOS、GRUB、内核加载、init 进程等。
- 能够排查常见启动问题,如 GRUB 故障、内核崩溃等。
- 结合阿里云 ECS 实际环境,理解云服务器的启动机制。
🧠 核心重点(表格提炼)
| 阶段 | 名称 | 关键知识点 |
|---|---|---|
| 1️⃣ | BIOS/UEFI | 自检硬件、寻找可启动设备 |
| 2️⃣ | MBR & GRUB | 引导程序,选择操作系统 |
| 3️⃣ | 内核加载 | 初始化硬件、挂载根文件系统 |
| 4️⃣ | init/systemd | 启动系统服务、进入运行级别 |
| 5️⃣ | 登录界面 | 提供终端或图形界面供用户登录 |
🔍 详细讲解
1. BIOS/UEFI 阶段 💾
BIOS(Basic Input Output System)是主板上的一块芯片,负责计算机开机后的第一道程序。
- 执行加电自检(POST),检查内存、硬盘、CPU 是否正常。
- 搜索可引导设备(如硬盘、U盘、光驱)。
- 将控制权交给第一个可引导设备的 MBR(主引导记录)。
📌 注意:
- 在物理机中你可能需要按
Del或F2进入 BIOS 设置启动顺序。 - 在阿里云 ECS 中,这个阶段由虚拟化平台自动处理,通常不可见。
2. MBR 与 GRUB 阶段 📦
✅ MBR(Master Boot Record)
- 位于硬盘的第一个扇区(前 512 字节)。
- 包含:
- Bootloader(引导代码)
- 分区表信息
- 结束标志
如果 MBR 损坏,系统将无法启动!
✅ GRUB(Grand Unified Bootloader)
- 是一个功能强大的引导程序,用于加载 Linux 内核。
- 常见版本:GRUB Legacy 和 GRUB2
- 支持多系统启动(例如同时安装 Windows 和 Linux)
📄 示例:GRUB 菜单截图(伪代码)
GNU GRUB version 2.06
+----------------------------+
| Ubuntu |
| Advanced options for Ubuntu|
| CentOS Linux |
| Memory test (+) |
+----------------------------+
Use the ↑ and ↓ keys to select an option.
📌 注意:
- 如果你在阿里云 ECS 上使用的是 CentOS 或 Ubuntu,大多数情况下默认使用 GRUB2。
- 若 GRUB 出现问题,可通过 LiveCD 或救援模式修复。
3. 内核加载阶段 🧠
此阶段的核心任务是将 Linux 内核(vmlinuz)和初始 RAM 磁盘(initrd)加载进内存,并开始执行内核。
主要工作包括:
- 初始化 CPU、内存、存储控制器等硬件。
- 挂载临时根文件系统(initramfs 或 initrd)。
- 加载必要的驱动程序(如硬盘控制器驱动)。
- 挂载真正的根文件系统(rootfs)。
📄 查看当前使用的内核版本命令:
uname -r
📌 注意:
- 如果你的根文件系统路径配置错误(如
/etc/default/grub中的GRUB_CMDLINE_LINUX),可能导致系统无法挂载根目录而进入紧急模式。 - 在阿里云 ECS 中,你可以通过 串口控制台 查看启动日志,帮助排错。
4. init/systemd 阶段 🚀
这是系统初始化的关键阶段,决定哪些服务和进程会被启动。
传统方式:System V init(旧版)
- 使用
/etc/inittab定义运行级别(runlevel)。 - 不同 runlevel 对应不同状态:
0:关机1:单用户模式(恢复用)3:多用户模式(无图形界面)5:图形界面模式6:重启
新一代方式:systemd(现代主流)
- 更快、更智能、支持并行启动。
- 单元(unit)管理所有资源(服务、套接字、定时器等)。
- 默认目标(target)代替 runlevel:
| target | 类似 runlevel | 功能 |
|---|---|---|
poweroff.target |
runlevel 0 | 关机 |
rescue.target |
runlevel 1 | 单用户模式 |
multi-user.target |
runlevel 3 | 多用户无图形界面 |
graphical.target |
runlevel 5 | 图形界面 |
reboot.target |
runlevel 6 | 重启 |
📄 查看当前默认启动目标:
systemctl get-default
📄 切换启动目标:
sudo systemctl set-default multi-user.target
📌 注意:
- systemd 的日志可以通过
journalctl查看。 - 阿里云 ECS 一般使用的是 systemd 架构,建议熟悉其基本命令。
5. 登录界面阶段 📲
系统完成初始化后,会显示登录提示符或图形登录界面。
- 文本登录界面:由
getty或agetty提供。 - 图形登录界面:由
gdm(GNOME)、sddm(KDE)等提供。
📄 查看当前登录终端:
who -b
📌 注意:
- 如果你连接的是阿里云 ECS,通常使用的是 SSH 登录,不会看到图形界面。
- 可以通过修改
/etc/ssh/sshd_config来配置 SSH 登录行为(如禁用 root 登录)。
⚙️ 实战案例:ECS 启动异常排查指南 🛠️
假设你的 ECS 实例在启动时出现异常,无法正常登录,以下是排查思路:
1. 使用阿里云控制台的“串口控制台”查看启动日志
- 登录阿里云控制台 ➝ 找到你的 ECS 实例 ➝ 点击“远程连接” ➝ 选择“串口控制台”
- 观察是否有如下关键词:
kernel panicmount failedgrub rescue>no such partition
2. 常见问题及解决方法
| 错误信息 | 原因 | 解决方案 |
|---|---|---|
kernel panic |
内核损坏或驱动缺失 | 重装内核、更新 initramfs |
mount failed |
根文件系统路径错误 | 修改 grub.cfg 或重建 initramfs |
grub rescue> |
GRUB 文件丢失 | 使用 chroot 修复 GRUB |
failed to mount /sysroot |
文件系统损坏 | fsck 检查磁盘 |
could not write bytes: broken pipe |
SSH 服务未启动 | 使用串口登录后手动启动 sshd |
📌 小技巧:
- 在阿里云中可以创建镜像快照备份系统盘,防止误操作导致系统损坏。
- 可使用
dracut或update-initramfs工具重建 initramfs。
📚 学习延伸建议
| 方向 | 推荐内容 |
|---|---|
| 深入了解 GRUB | info grub、man grub.cfg |
| 理解 initramfs | dracut, mkinitcpio, update-initramfs |
| systemd 管理 | systemctl list-units, journalctl -b |
| 启动排错实战 | 使用 LiveCD 模式修复 MBR、GRUB、文件系统 |
🧩 总结一句话:
“掌握 Linux 启动过程,就像掌握了打开系统的钥匙🔑 —— 无论你是运维、开发还是安全工程师,这都是必备技能!”
是否继续下一章?我将继续输出:
- 《Linux 文件系统详解》📁
- 《用户与权限管理实战》🔐
- 《Shell 脚本编程入门》🖥️
请告诉我你想深入的方向吧!🎯

浙公网安备 33010602011771号