Linux系统启动流程详解:BIOS/UEFI、GRUB、initramfs、systemd
按一下电源到登录提示符出现中间这几十秒其实跑了四个阶段固件自检、引导加载器拉起内核、initramfs把根文件系统准备好、最后systemd接管。排启动类故障——比如卡在 GRUB、内核 panic、服务起不来——你得知道每一步在干什么才知道卡在哪一环。这一篇把整条链路拆开来。一、全链路一眼看从上电到登录顺序固定BIOS/UEFI 固件自检 → 选择启动设备 → GRUB 引导加载器 → 加载内核 initramfs → 内核挂载 initramfs 临时根 → 加载磁盘/文件系统驱动 → 切到真实根 → systemd 成为 PID 1 → 激活 default target → 登录提示符每一环都有对应的排错入口。卡在 BIOS 阶段是硬件/启动盘问题卡在 GRUB 是引导配置问题内核 panic 多半是 initramfs 或驱动进不了登录界面才是 systemd 服务问题。二、BIOS/UEFI固件阶段按下电源主板上的固件先跑起来。这东西现在分两代对比项Legacy BIOSUEFI启动方式读磁盘第一扇区 MBR读 ESP 分区里的 EFI 程序分区表MBRGPT也支持 MBR磁盘大小2TB 上限无此限制启动速度慢快可并行初始化引导文件MBR 里 512 字节FAT32 分区/EFI/目录MBR 那 512 字节里放不下完整引导器所以 BIOS 时代才搞出 GRUB stage1/stage2 这种分段设计。UEFI 直接认文件引导器就是 ESP 分区里一个.efi文件清爽很多。怎么判断自己机器是哪种[-d/sys/firmware/efi]echoUEFI 启动||echoLegacy BIOS 启动预期输出UEFI 启动有/sys/firmware/efi就是 UEFI。没有就是老 BIOS。UEFI 环境下看启动项sudoefibootmgr预期输出节选BootCurrent: 0001 Timeout: 1 seconds BootOrder: 0001,0000,0002 Boot0000* Windows Boot Manager Boot0001* ubuntu Boot0002* Hard DriveBootOrder决定引导顺序GRUB 一般就是那个ubuntu条目。三、GRUB引导加载器固件把控制权交给 GRUB 之后GRUB 干三件事显示启动菜单、选内核、把内核和 initramfs 一起加载到内存。GRUB 配置文件在哪发行版主配置重新生成命令Ubuntu/Debian/boot/grub/grub.cfgsudo update-grubCentOS/Rocky/boot/grub2/grub.cfgsudo grub2-mkconfig -o /boot/grub2/grub.cfggrub.cfg是生成出来的别手改。真正改的是/etc/default/grub全局默认项和/etc/grub.d/下的脚本。改完重新生成sudoupdate-grub# Ubuntusudogrub2-mkconfig-o/boot/grub2/grub.cfg# Rocky临时加内核参数开机卡在内核阶段临时加个single或systemd.unitrescue.target进救援模式不用改文件GRUB 菜单出现时按e找到linux那一行行末加上参数按CtrlX启动。这是排障救命招。重装 GRUB系统装在/dev/sdaUEFI 模式GRUB 坏了重装sudogrub-install /dev/sdasudoupdate-grubRocky 上是grub2-install。装完一定要update-grub重新生成配置不然菜单里还是旧条目。四、initramfs临时根文件系统内核本身不知道你的硬盘是什么接口、根分区是什么文件系统。直接挂/必失败。解决方案是 initramfsinit ram filesystem一个打包成cpio.gz的迷你根文件系统里面放着常见磁盘驱动和工具。流程GRUB 把vmlinuz内核和initramfs.img一起加载到内存。内核先把 initramfs 挂成临时根跑里面的/init脚本。/init探测硬件加载真正的磁盘/文件系统驱动比如你的根分区在 LVM 或 RAID 上这里才挂上。挂上真实根switch_root切过去丢掉 initramfs。重新生成 initramfs加了新内核驱动、改了磁盘布局都要重生成sudoupdate-initramfs-u# Ubuntu/Debiansudodracut-f# CentOS/Rocky不重生成新内核或新驱动可能在启动阶段认不出根分区直接 panic。内核 panic 长什么样Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)看到Unable to mount root fs基本就是 initramfs 里缺驱动或者/etc/fstab里根分区 UUID 写错了。五、systemdPID 1切到真实根之后第一个被内核拉起来的用户态进程就是/sbin/init现在指向 systemd。它的 PID 永远是 1。systemd 启动干这些事挂载/etc/fstab里定义的所有文件系统。初始化网络、主机名、时区。按依赖关系启动 default target 下挂的所有服务。看启动花了多久systemd-analyze预期输出Startup finished in 2.312s (kernel) 1.847s (userspace) 4.159s graphical.target reached after 1.793s in userspace哪个服务拖慢了启动systemd-analyze blame预期输出节选852ms dnf-makecache.service 410ms systemd-journal-flush.service 233ms firewalld.service 102ms NetworkManager-wait-online.service 45ms sshd.serviceNetworkManager-wait-online.service常年霸榜服务器不需要等网络完全就绪再启动应用直接sudo systemctl disable NetworkManager-wait-online能省一两秒。blame只告诉你谁最慢没说它在等谁。想看某条服务的完整等待链用critical-chainsystemd-analyze critical-chain multi-user.target预期输出节选multi-user.target 1.793s └─ NetworkManager-wait-online.service 1.582s 102ms └─ NetworkManager.service 1.204s 312ms └─ network-pre.target 1.201s缩进和箭头画出来的就是依赖等待关系multi-user.target等NetworkManager-wait-online它又等NetworkManager。启动慢到底卡在哪一环一眼看清不用一个个服务猜。六、常见故障排查入口卡在哪现象先查什么固件后黑屏找不到启动设备启动盘顺序、ESP 分区、MBR 是否被覆盖卡在 GRUB 提示符grubGRUB 没装对或 grub.cfg 找不到进救援盘重装内核 panicVFS: Unable to mount rootinitramfs、fstab UUID、磁盘是否识别一直卡在 A start job is running某服务超时GRUB 里加systemd.unitmulti-user.target跳过问题服务能启动但服务不对应用没起来进系统后journalctl -xb看本次启动日志进紧急模式的两种方式GRUB 启动参数里加systemd.unitrescue.target进救援模式加emergency.target进最小化紧急 shell。救援模式至少会尝试挂文件系统emergency 模式只挂只读根排查 fstab 问题用 emergency。七、知识扩展从 MBR 到 ESP 的引导史理解了 BIOS 和 UEFI 的差别很多老文档的MBR 第一扇区说法才有意义。Legacy BIOS 启动一台 Linux 机器链条是这样的BIOS → 读 MBR硬盘第一扇区 512 字节 → MBR 里的 GRUB boot.imgstage1只有 446 字节 → 读 GRUB core.imgstage1.5放 MBR 之后的间隙分区 → 加载 GRUB 内核stage2 → 读 /boot/grub/grub.cfg → 加载 vmlinuz initramfs446 字节连个文件系统都读不懂这就是为什么需要分段。stage1 唯一的任务就是把 stage2 找出来。UEFI 把这一切省了。固件本身就懂 FAT 文件系统ESP 分区上直接放一个grubx64.efi文件固件按 NVRAM 里记的路径加载它没有 MBR、没有 stage1、没有 boot 间隙。代价是 ESP 必须是 FAT32 分区而且分区表得是 GPT。怎么确认自己的/boot长啥样ls/boot预期输出UEFI 机器config-6.8.0-45-generic initrd.img-6.8.0-45-generic System.map-6.8.0-45-generic efi grub vmlinuz-6.8.0-45-generic initrd.img grub2 vmlinuzvmlinuz是压缩后的内核initrd.img就是 initramfs。efi目录挂载着 ESP。装内核时apt install linux-image-xxx或dnf install kernel包管理会自动把这两个文件扔进来并跑一遍update-grub你不用手动改 grub.cfg——知道这条流水线存在排障时才知道该重跑哪一步。

相关新闻

`str.format()`方法因其灵活性和可读性,成为Python开发者广泛使用的格式化方式

`str.format()`方法因其灵活性和可读性,成为Python开发者广泛使用的格式化方式

Python字符串格式化是编程中的基础且重要的操作。str.format()方法作为Python 2.6引入的字符串格式化方式,在Python 3中成为主流格式化方法之一。本报告将深入探讨str.format()方法的使用方式、语法特性、应用场景,并通过丰富的代码示例展示其强大功能。…

2026/9/30 11:21:20 阅读更多 →
Ubuntu22.04下双ROS互通搭建指南

Ubuntu22.04下双ROS互通搭建指南

双ROS互通这事,看起来简单,真做起来踩坑的人不在少数。标题是“Ubuntu22.04下双ROS互通简单搭建”,说明核心需求很明确:在海量ROS学习资料满天飞的今天,很多人装了ROS,却很少能真正把两台机器上的ROS节点跑…

2026/9/30 11:21:20 阅读更多 →
拖拽式视觉开发:工业视觉检测的低代码实战指南

拖拽式视觉开发:工业视觉检测的低代码实战指南

工业视觉这行干久了,大家私下交流时经常聊到一个现象:十年前搭一套视觉检测系统,从相机选型、光源调试到算法编写、界面开发,一个项目没个把月根本下不来,而且还得是那种既能写 C 又能调硬件的全栈工程师。但现在不一样…

2026/9/30 11:21:20 阅读更多 →

最新新闻

小型校园网组网实验:子网划分、VLAN与单臂路由配置详解

小型校园网组网实验:子网划分、VLAN与单臂路由配置详解

简介:东北大学计算机网络课程的这份实验报告,围绕小型校园网的设计与组建,完整呈现了从需求分析到网络调试的实践流程,适合计算机网络专业学生及正在完成同类实验的初学者参考。压缩包内仅含1个doc文档,大小约1.21MB&a…

2026/9/30 14:50:50 阅读更多 →
基于YOLOv11的鲜花识别检测系统:106类花卉完整落地流程

基于YOLOv11的鲜花识别检测系统:106类花卉完整落地流程

简介:一份基于YOLOv11的106种鲜花识别检测系统的技术文档,面向计算机视觉研究人员、软件工程师及园艺相关从业者,完整呈现从环境搭建、数据集准备、模型配置与训练,到导出ONNX、性能评估和Tkinter图形界面实现的开发全流程&#x…

2026/9/30 14:50:50 阅读更多 →
网线制作教学指南:T568A/T568B线序与直通交叉线实操

网线制作教学指南:T568A/T568B线序与直通交叉线实操

简介:这份精选演示文稿系统梳理了计算机网络基础中的网线制作关键知识点,面向网络初学者、职校学生以及刚接触布线的技术人员,帮助快速理解双绞线的工作原理并掌握RJ45接头的制作方法。资源包共包含1个PPT格式的演示文稿,整体大小…

2026/9/30 14:50:50 阅读更多 →
自动控制原理核心考点笔记:建模、稳定性分析与控制器设计

自动控制原理核心考点笔记:建模、稳定性分析与控制器设计

简介:这是一份面向自动化、电气工程及其自动化、电子信息工程等专业学生的《自动控制原理》课程学习笔记,内容梳理自卢京潮教授的配套课程,适合课程学习与考研复习人群对照使用。笔记围绕控制系统基本概念、传递函数与状态空间建模、稳定性分…

2026/9/30 14:50:50 阅读更多 →
vsftpd 530 Login incorrect全解析:从PAM认证到账号状态排查

vsftpd 530 Login incorrect全解析:从PAM认证到账号状态排查

简介:Linux环境下vsftpd服务偶发“530 Login incorrect”登录失败,常让运维人员无从下手。这份PDF排错指南从现象出发,为系统管理员和FTP服务维护者梳理了完整的排查链路。资源仅包含1个PDF文档,压缩包约28KB,篇幅精简…

2026/9/30 14:50:50 阅读更多 →
公共云平台资源申请审批表:管住云账单的第一道闸门

公共云平台资源申请审批表:管住云账单的第一道闸门

简介:公共云平台资源申请审批表.doc 是一份面向组织信息化管理场景的标准公文模板,适用于需要申请、审批和统筹公共云资源的行政人员、处室负责人及分管领导。审批表涵盖申请人信息、所在处室、具体需求内容、处室负责人意见、规划发展与信息化处意见、分…

2026/9/30 14:49:49 阅读更多 →

日新闻

Base64 图片头部特征识别:从文件头到格式判断的完整指南

Base64 图片头部特征识别:从文件头到格式判断的完整指南

1. 项目概述:为什么说看懂 base64 图片头部是基本功这几年跟 base64 打交道的机会越来越多,后端接口返回图片、前端渲染验证码、小程序里存小图、还有一些老系统导出报表,动不动就给你一段长到怀疑人生的 base64 字符串。很多人拿到字符串就直…

2026/9/30 0:00:35 阅读更多 →
Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

简介:本资源是一份面向Java初学者与课程设计学生的公交站牌广告灯箱管理系统毕业设计文档,聚焦城市公共广告资源信息化管理痛点,提供从需求分析到技术实现的完整方案。文档采用标准学术论文结构,含摘要、英文摘要、目录及五章正文…

2026/9/30 0:00:35 阅读更多 →
用 Redis Lua 构建大模型 API 多租户原子配额治理体系

用 Redis Lua 构建大模型 API 多租户原子配额治理体系

我去年年底接了一个内部 AI 平台的治理需求,背景很直接:公司把 DeepSeek、MiniMax 这类大模型 API 统一封装成内部网关,开放给几个业务团队用。结果第一个月账单出来,额度直接超了 4 倍。仔细查日志,发现原因并不复杂—…

2026/9/30 0:00:35 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/29 16:41:41 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/29 19:29:29 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/29 5:58:00 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/29 3:55:56 阅读更多 →