启动前的准备工作
-
硬件检查
按下电源键后,主板通电并执行 POST(上电自检):- 检测 CPU、内存、硬盘等关键硬件
- 屏幕显示厂商 Logo(如 Dell/HP)或检测进度
- 若硬件故障,主板蜂鸣器报错或屏幕显示错误代码
-
固件阶段:BIOS/UEFI
- BIOS 系统(传统模式):
- 读取主板 ROM 中的程序
- 按预设顺序(硬盘>U盘>光盘)查找引导扇区
- UEFI 系统(现代主流):
- 读取 ESP 分区(FAT32格式)中的
.efi
引导文件 - 支持安全启动(Secure Boot)验证数字签名
- 读取 ESP 分区(FAT32格式)中的
- BIOS 系统(传统模式):
引导加载程序阶段
核心作用:加载 Linux 内核
常见工具:GRUB(Grand Unified Bootloader)或 systemd-boot
-
GRUB 工作流程:
- 阶段1:从 MBR 或 ESP 分区加载
boot.img
- 阶段2:读取
/boot/grub/grub.cfg
配置文件 - 显示启动菜单(按
Shift
/Esc
可调出) - 用户可选择内核版本或进入恢复模式
- 阶段1:从 MBR 或 ESP 分区加载
-
关键文件路径:
- 内核文件:
/boot/vmlinuz-<版本号>
- 初始内存盘:
/boot/initramfs-<版本号>.img
(包含驱动/临时根目录)
- 内核文件:
示例:双系统用户需在 GRUB 中选择 Linux 或 Windows
内核初始化阶段
内核接管后执行:
- 解压
initramfs
到内存作为临时根文件系统 - 加载硬件驱动(磁盘控制器、文件系统等)
- 挂载真正的根分区()
- 启动第一个用户态进程:
- 传统系统:
/sbin/init
(SysV init) - 现代系统:
systemd
(PID=1)
- 传统系统:
系统初始化阶段
systemd 的工作流程:
- 解析默认目标:
systemctl get-default # 通常为 graphical.target(图形界面)或 multi-user.target(命令行)
- 按依赖顺序启动单元(Unit):
- 挂载文件系统(
/etc/fstab
) - 启动基础服务(网络、日志、D-Bus)
- 激活 udev 规则识别新硬件
- 挂载文件系统(
- 启动显示管理器:
- GDM(GNOME)
- LightDM(轻量级桌面)
- SDDM(KDE Plasma)
用户登录阶段
- 显示管理器加载登录界面
- 用户输入账号密码
- 启动桌面环境进程:
- GNOME:
gnome-shell
- KDE:
plasmashell
- GNOME:
- 执行用户级初始化脚本:
~/.bash_profile
~/.xinitrc
(影响图形会话)
故障排除技巧
问题现象 | 解决方法 |
---|---|
GRUB 菜单消失 | 用 Live USB 执行 grub-install |
卡在内核启动 | 启动时按 e 编辑 GRUB 参数,添加 init=/bin/bash 进入急救模式 |
文件系统损坏 | 启动参数添加 fsck.mode=force |
显卡驱动问题 | 添加 nomodeset 参数 |
忘记 root 密码 | 在 GRUB 内核行末尾添加 rd.break 重置密码 |
高级启动选项
- 恢复模式(Recovery Mode):
- 自动进入 root shell
- 禁用非必要服务
- 单用户模式:
启动参数添加single
或s
,仅加载基础服务 - 网络启动(PXE):
需配置 DHCP/TFTP 服务器,适用于无盘系统
Linux 启动流程是硬件与软件协作的典范:固件 → 引导程序 → 内核 → 初始化系统 → 用户会话
理解此过程有助于快速诊断问题(如启动卡在 [OK]
提示符)或优化启动速度(通过 systemd-analyze blame
分析)。
引用说明参考 Linux 内核文档(kernel.org)、systemd 官方手册(freedesktop.org)及《Linux 系统管理技术手册》(Evi Nemeth 著),遵循 LSB(Linux 标准规范)核心标准,硬件交互部分依据 UEFI 规范 2.9 版(2021 年发布)。
通过掌握这些知识,您将能有效管理系统启动过程,并为深入学习 Linux 运维奠定基础。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8230.html