Linux系统超详细启动流程全程解析(从上电到登录,小白也能彻底看懂)
适用人群Linux初学者、后端开发、嵌入式开发、运维工程师、面试刷题人员阅读收获彻底搞懂Linux从上电到登录的每一步原理、内核与用户空间边界、常见开机报错原因、USB/驱动开机加载逻辑、高频面试考点文章风格无废话黑话、分层清晰、流程闭环、结合实战故障一、前言很多开发者天天用Linux但始终搞不懂一个问题按下开机键到出现命令行/桌面中间到底发生了什么Linux启动不是“一瞬间完成”而是一套分层、串行、严格依赖前置条件的标准化流程。全程可以拆分为6个核心阶段每个阶段各司其职前一个阶段失败后序全部无法执行。本文统一兼容PC端BIOS/UEFIGRUB和嵌入式端U-Boot同时区分内核空间 / 用户空间边界解决90%新手开机原理误区。二、Linux启动总流程宏观总览完整开机链路从上电到登录上电复位 → BIOS/UEFI自检 → Bootloader引导 → 内核解压与初始化 → 挂载根文件系统 → 用户空间init进程启动 → 系统服务与终端就绪六大阶段层层递进下面逐阶段逐行细节拆解。三、阶段1上电复位 BIOS/UEFI 硬件自检不属于Linux3.1 核心作用这是电脑/板子上电后的第一段代码和Linux系统、内核完全无关属于硬件固件层级。3.2 详细执行步骤CPU硬件复位上电后CPU强制跳转到硬件固定复位地址执行第一条指令。POST加电自检固件检测CPU、内存、硬盘、主板外设是否正常硬件异常会通过蜂鸣器、屏幕报错提示。初始化基础硬件初始化串口、键盘、显示器、磁盘控制器等基础外设。读取启动顺序按照BIOS/UEFI设置的优先级硬盘、U盘、光驱寻找可引导设备。移交控制权给Bootloader读取磁盘引导扇区加载GRUB/U-Boot结束自身工作。3.3 新手误区❌ 误区开机黑屏是Linux卡死✅ 真相黑屏阶段是固件自检此时Linux内核还未启动3.4 嵌入式特殊说明嵌入式开发板无传统BIOS上电先执行片内ROM固化代码再加载U-Boot逻辑等价于PC的BIOSGRUB。四、阶段2Bootloader 引导程序阶段系统桥梁PC端GRUB嵌入式端U-BootBootloader是裸机程序无操作系统、无内存管理仅做一件事把内核搬运到内存交给CPU执行。4.1 核心工作初始化DDR内存、Flash、串口等关键硬件从硬盘/Flash读取内核镜像zImage/vmlinuz、设备树文件dtb到物理内存设置开机启动参数 bootargs极其关键consolettyS0,115200 root/dev/mmcblk0p2 rootwait rw参数作用告诉内核日志输出串口、根文件系统所在分区、读写权限等核心配置。打印Starting kernel ...跳转内核入口彻底交出CPU控制权。4.2 本阶段常见故障bootargs的root参数写错 → 内核后续无法挂载根文件系统开机panicdtb与内核版本不匹配 → 内核识别不到USB、网卡、串口等外设五、阶段3内核解压 早期初始化内核启动第一步Bootloader跳转完成后正式进入Linux内核流程。5.1 内核自解压我们使用的内核镜像zImage是压缩镜像首先执行内嵌汇编解压代码将完整内核代码解压到内存指定位置。5.2 基础硬件初始化初始化MMU内存管理单元开启虚拟内存机制建立内核空间/用户空间隔离权限隔离的源头初始化页表、内存分配基础环境。此阶段无任何打印日志属于内核极早期汇编阶段。六、阶段4start_kernel() 内核全子系统初始化核心重头戏start_kernel()是Linux内核C语言入口函数90%内核初始化工作都在这里完成dmesg大部分日志均出自此处。关键前提此时还没有根文件系统、没有/dev、/sys、没有任何用户程序全程运行在内核空间。6.1 依次执行的核心初始化逻辑打印内核版本Banner开机第一行内核日志初始化中断子系统所有硬件中断USB插入、网卡、串口依赖此模块内存管理子系统初始化kmalloc、内存分配、内存回收全部就绪进程调度器初始化CPU时间片分配、多任务调度就绪时间子系统初始化定时器、jiffies时钟就绪解析设备树DTB读取板载硬件地址、中断号、外设信息各大内核子系统初始化USB子系统、网络子系统、VFS虚拟文件系统内置驱动built-in执行probe编译进内核的驱动在此处识别硬件创建全局内核线程kthreadd所有内核线程的父进程。6.2 rest_init() 关键跳转内核基础环境就绪后调用rest_init()创建kernel_init内核线程负责挂载根文件系统、拉起用户空间创建用户态辅助线程为后续热插拔、模块加载做准备。七、阶段5挂载根文件系统从内核跨入用户空间分水岭阶段这是Linux启动最重要的分界线此前纯内核空间此后进入用户空间生态。7.1 kernel_init 核心工作解析bootargs中的root/dev/xxx参数定位根文件系统分区挂载临时rootfs再切换挂载真实根文件系统挂载虚拟文件系统/proc进程信息、/sys内核设备信息启动用户空间1号进程init。内核会按顺序寻找init程序/sbin/init-/etc/init-/bin/init-/bin/sh7.2 经典开机panic故障高频VFS: Unable to mount root fs on unknown-block Kernel panic - not syncing: VFS: Unable to mount root fs故障原因bootargs参数错误、分区损坏、根文件系统缺失内核有了但没有用户空间环境系统无法继续启动。八、阶段6PID1 init进程初始化系统服务就绪1号进程是所有用户进程的祖先内核彻底移交控制权全程用户空间运行。8.1 两种主流init体系1嵌入式常用BusyBox init读取/etc/inittab初始化配置执行开机脚本/etc/rcS挂载临时目录、配置主机名启动udevd热插拔进程重中之重udevd作用监听内核uevent事件自动加载USB/网卡ko驱动、自动创建/dev/ttyUSB0等设备节点。启动shell终端出现命令行提示符系统可操作。2PC/服务器常用systemdPID1为systemd程序并行启动所有系统服务依次启动udev、网络、ssh、日志等服务启动登录管理器进入桌面/登录界面。九、开机完成后的动态机制结合USB驱动实战系统启动完成后插入USB设备的完整联动流程串联前文驱动知识USB硬件触发中断内核usbcore子系统枚举设备获取VID/PID内核内置驱动匹配失败发送uevent热插拔事件用户空间udevd接收事件读取modules.alias匹配驱动调用modprobe加载rootfs中的.ko驱动模块到内核内核重新匹配驱动执行probe在/sys生成设备信息udev自动在/dev创建设备节点应用程序可正常读写设备。十、完整极简时序流程图背诵版上电复位 ↓ BIOS/UEFI 自检 寻找引导设备 ↓ Bootloader(GRUB/U-Boot) 加载内核dtb、设置启动参数、跳转内核 ↓ 内核自解压 开启MMU虚拟内存 ↓ start_kernel() 初始化所有内核子系统、内置驱动 ↓ rest_init() 创建内核初始化线程 ↓ 挂载根文件系统 /proc /sys ↓ 启动PID1 init进程进入用户空间 ↓ 启动udev、网络、各类系统服务 ↓ 终端/桌面就绪开机完成十一、高频面试考点 新手易错总结11.1 核心面试题Linux内核和Linux系统的区别 答内核是底层硬件管理者完整系统Bootloader内核根文件系统用户服务。内核空间和用户空间的分界点 答挂载根文件系统、启动PID1 init进程。udev是什么属于内核还是用户态 答用户态守护进程负责驱动热插拔、自动创建设备节点。未知USB设备的根本原因 答内核枚举成功但无对应驱动匹配无法绑定设备、生成/dev节点。11.2 高频开机故障汇总无任何输出BIOS/U-Boot未启动硬件问题内核启动后黑屏panicdtb不匹配、内置驱动异常VFS挂载失败bootargs根分区参数错误能进系统但无USB设备udev未启动、ko模块缺失、modules.alias无匹配。十二、结语Linux启动流程的本质就是固件引导 → 内核接管硬件 → 文件系统落地 → 用户服务赋能。看懂这套流程不仅能搞定所有开机报错、驱动加载问题同时能吃透Linux内核架构、操作系统分层思想轻松应对面试和开发实战。原创不易点赞收藏后续持续更新Linux内核、驱动、嵌入式实战干货

相关新闻

专业做2026年小红书千帆(乘风)广告开户投放怎么合作联系的公司

专业做2026年小红书千帆(乘风)广告开户投放怎么合作联系的公司

在当今数字化营销的浪潮中,小红书凭借其庞大的用户群体和强大的种草能力,成为了全国线上商家和实体门店经营者不可忽视的营销阵地。小红书上活跃着大量的年轻消费者,他们对新鲜事物充满好奇,且具有较强的消费能力。通过在小红书上…

2026/9/15 0:52:40 阅读更多 →
Git 用法总结

Git 用法总结

枯木逢春犹再发,人无两度再少年。 导航 0 前言1 基本概念 1.1 工作区、暂存区、版本库(流程节点)1.2 初始化、添加、提交、贮藏(本地操作)1.3 获取、拉取、推送、克隆(远端操作)1.4 分支、检出…

2026/9/26 5:14:11 阅读更多 →
解决TMPEffects常见问题:Unity文本动画插件排错与性能优化

解决TMPEffects常见问题:Unity文本动画插件排错与性能优化

解决TMPEffects常见问题:Unity文本动画插件排错与性能优化 【免费下载链接】TMPEffects Easily animate Unity text and apply other effects with custom tags 项目地址: https://gitcode.com/gh_mirrors/tm/TMPEffects TMPEffects是一款强大的Unity文本动画…

2026/9/25 2:07:22 阅读更多 →

最新新闻

AI Agent标准架构拆解:用TaoToken统一Key打通LLM与Tools的Loop

AI Agent标准架构拆解:用TaoToken统一Key打通LLM与Tools的Loop

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/26 16:41:45 阅读更多 →
Claude Code新手实战:用TaoToken统一Key蒸馏出“叶金荣”Skill的完整配置

Claude Code新手实战:用TaoToken统一Key蒸馏出“叶金荣”Skill的完整配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/26 16:41:45 阅读更多 →
支持Function Call的本地ollama模型对比评测:开发代理agent的配置与验证

支持Function Call的本地ollama模型对比评测:开发代理agent的配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/26 16:41:45 阅读更多 →
自建CRM系统实战:从Docker部署到团队落地全流程复盘

自建CRM系统实战:从Docker部署到团队落地全流程复盘

客户信息分散在微信聊天、邮件、Excel表格和个人便签里,需要回看半年前的沟通记录时,得来回切换四五个窗口,最后仍然拼不出完整过程——这是我决定认真部署一套CRM系统的直接导火索。DeskcommCRM 是我近期从选型、部署到逐步推广给团队使用的…

2026/9/26 16:41:44 阅读更多 →
AI导航与语义SLAM技术进展:TaoToken统一Key接入ROS2 Nav2的配置与验证

AI导航与语义SLAM技术进展:TaoToken统一Key接入ROS2 Nav2的配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/26 16:41:44 阅读更多 →
代码阅读工作流实战:用 TaoToken 统一 Key 打通文件搜索、符号跳转与提问策略

代码阅读工作流实战:用 TaoToken 统一 Key 打通文件搜索、符号跳转与提问策略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/26 16:40:44 阅读更多 →

日新闻

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、…

2026/9/26 0:00:25 阅读更多 →
学校官网模拟全流程实践:从页面布局到后端接口与部署

学校官网模拟全流程实践:从页面布局到后端接口与部署

如果你正在找一门 Web 大作业的题目,或者刚开始接触 Web 前端开发想做点能拿来展示的东西,“学校官网模拟”几乎是最稳的选择。题目看着简单,但要把导航、新闻列表、轮播 Banner、二级页面、后台数据都串起来,其实已经把前端布局、…

2026/9/26 0:00:25 阅读更多 →
超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

超级玛丽游戏源码C++:从零搭建横版跳跃游戏工程

简介:这是一份面向游戏开发初学者与C进阶学习者的超级玛丽(超级马里奥)游戏源码,基于C面向对象编程实现,适合想通过经典项目理解游戏主循环、角色类设计、地图关卡加载与物理碰撞检测的读者参考。压缩包共49个文件&…

2026/9/26 0:00:25 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/25 19:27:14 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/25 11:15:26 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/25 20:29:09 阅读更多 →

月新闻

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

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

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

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

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

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

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

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

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

2026/9/25 19:27:26 阅读更多 →