ubuntu minimal启动过程
小樊
38
2025-12-10 12:57:50
Ubuntu Minimal 启动过程概览
- 启动从固件开始,经历引导加载、内核与 initramfs、用户空间初始化,到登录与运行服务。与完整桌面版相比,Ubuntu Minimal 仅保留核心组件,默认不启动图形会话,启动更快、占用更小,但阶段划分与原理一致。关键阶段包括:BIOS/UEFI → Bootloader(GRUB)→ 内核与 initramfs → 用户空间初始化(早期用户态)→ 登录与服务。
阶段详解
- 固件阶段(BIOS/UEFI)
- 上电执行 POST 自检,按启动顺序选择介质;传统 MBR 启动扇区以 0x55AA 结尾标识可启动设备;UEFI 则从 EFI 分区加载引导程序(如 EFI 文件)。
- 引导加载阶段(GRUB)
- 读取 /boot/grub/grub.cfg,显示菜单(如多系统或恢复项),加载指定的 vmlinuz 内核与 initrd/initramfs,并将控制权交给内核。
- 内核与早期用户态
- 内核解压并初始化,挂载 initramfs 作为临时根文件系统,加载必要驱动,定位并挂载真实根分区(可能涉及 LVM/加密/RAID),然后切换到真实根。
- 用户空间初始化
- 执行第一个用户空间进程(PID 1)。在较新的 Ubuntu 中通常是 systemd;在早期或极简系统中可见 Upstart 或 SysV init 的行为特征(如读取运行级别、执行 rc 脚本)。
- 登录与运行服务
- 启动 getty 提供本地终端(如 tty1–tty6),或按需启动 SSH 服务;若安装并启用图形栈,则启动显示管理器(如 GDM)进入桌面;否则保持多用户文本模式运行。
与传统桌面版的关键差异
- 默认不安装图形会话与显示管理器,启动到 多用户文本模式(运行级别通常为 3 而非 5)。
- 服务集合更精简,仅保留核心系统服务,减少启动项与后台进程,从而缩短启动时间并降低内存占用。
- 内核与 initramfs 机制相同,但模块与驱动集合更聚焦服务器/基础场景,必要时可手动增删。
故障排查与优化要点
- 无法进入系统:在 GRUB 菜单按 e 临时编辑内核命令行,检查 root=、init=、ro/rw 与 console 等参数;必要时从 LiveCD/救援模式检查分区与文件系统。
- 根分区或 LVM/加密问题:确认 initramfs 包含相应模块(如 lvm2、cryptsetup);更新 initramfs 后重试。
- 启动过慢:排查 systemd 服务与挂载点(如网络挂载、慢速设备);使用
systemd-analyze blame/plot 定位耗时单元。
- 登录问题:检查 /etc/passwd、/etc/shadow 与 PAM 配置;确认 getty@tty1.service 或 SSH 服务已启用并运行。