Linux系统启动过程的5个阶段是什么

来源:站长论坛作者:本地能跑头衔:程序员
导读:本期聚焦于小伙伴创作的《Linux系统启动过程的5个阶段是什么》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《Linux系统启动过程的5个阶段是什么》有用,将其分享出去将是对创作者最好的鼓励。

Linux系统从通电到进入可操作状态,整体分为5个明确的启动阶段,每个阶段都有对应的核心任务和相关组件支撑,共同完成系统的初始化工作。

Linux系统启动过程的5个阶段是什么

第一阶段:BIOS/UEFI加电自检

用户按下电源键后,主板上的BIOS或者UEFI固件首先运行,执行硬件自检操作。这个阶段的目的是检查CPU、内存、硬盘、显卡等核心硬件是否正常工作,同时按照预设的启动顺序查找可引导设备。当找到包含引导程序的设备后,固件会将引导程序加载到内存中,随后把控制权交给引导程序。

常见的启动顺序配置可以在BIOS/UEFI设置界面中调整,一般默认优先从硬盘启动。如果硬件检测失败,系统会发出蜂鸣报警或者显示对应的错误提示,无法进入后续启动流程。

第二阶段:引导加载程序运行

引导加载程序的核心作用是加载Linux内核到内存中,常见的引导加载程序有GRUB、GRUB2、LILO等,目前大多数Linux发行版默认使用GRUB2。引导加载程序运行后会展示启动菜单,用户可以选择要启动的内核版本,也可以对启动参数进行调整。

引导加载程序会读取配置文件中的内核路径和初始化内存盘路径,将两者加载到内存后,把控制权交给Linux内核。以下是GRUB2的默认配置文件部分内容示例:

# GRUB2配置文件示例
set default=0
set timeout=5
menuentry 'Linux 5.4.0' {
    linux /vmlinuz-5.4.0 root=/dev/sda1 ro
    initrd /initramfs-5.4.0.img
}

第三阶段:Linux内核初始化

内核被加载到内存后,首先会进行自身的初始化操作,包括检测所有硬件设备、加载对应的驱动程序、挂载根文件系统。内核会先挂载初始化内存盘(initramfs),这是一个临时的根文件系统,包含了挂载真实根文件系统所需要的驱动和工具。

当真实的根文件系统挂载完成后,内核会释放初始化内存盘,切换到真实的根文件系统,随后启动第一个用户空间进程,在传统的SysVinit系统中这个进程是init,在systemd系统中是systemd,进程的PID始终为1。

可以通过以下命令查看当前系统的第一个进程:

# 查看PID为1的进程
ps -ef | grep -E "PID|1 "

第四阶段:用户空间初始化进程启动

PID为1的初始化进程会负责后续所有用户空间进程的启动和管理,不同的初始化系统有不同的工作流程。如果是SysVinit系统,init进程会读取/etc/inittab配置文件,确定系统的运行级别,然后按照运行级别对应的脚本顺序启动服务。

如果是systemd系统,会读取/etc/systemd/system/default.target文件,确定默认的目标(相当于运行级别),然后按照依赖关系启动对应的服务单元。以下是systemd查看默认目标的命令示例:

# 查看systemd默认启动目标
systemctl get-default

常见的运行级别和systemd目标对应关系如下:

运行级别systemd目标含义
0poweroff.target关机
1rescue.target单用户模式
3multi-user.target多用户文本模式
5graphical.target多用户图形模式
6reboot.target重启

第五阶段:用户登录环境初始化

当所有系统服务启动完成后,系统会启动终端或者显示管理器,等待用户登录。如果是文本模式,会启动getty进程监听终端,用户输入用户名和密码后,系统会验证身份信息,验证通过后会加载用户的shell配置文件,比如~/.bashrc、~/.profile等,完成用户环境的初始化。

如果是图形模式,显示管理器会展示登录界面,用户登录后启动桌面环境,同样会加载对应的用户配置文件,最终进入用户可操作的界面。整个启动流程到此全部完成。

可以通过查看/var/log/boot.log文件了解系统启动过程中的详细日志,方便排查启动阶段出现的问题:

# 查看启动日志
cat /var/log/boot.log

Linux启动init进程systemd引导加载程序运行级别修改时间:2026-07-07 03:45:11

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。