很多运维朋友日常只会重启服务、开关机,一旦遇到开机故障直接束手无策。开机黑屏、内核报错、GRUB引导损坏、忘记Root密码、文件系统挂载失败,这些高频问题,本质都是不懂 Linux 开机底层逻辑。本文用轻量化阅读逻辑,从流程→内核→配置→引导→排障层层拆解。只留核心考点和生产实操,无废话、无冗余晦涩理论,看完就能用、面试就能答。
一、Linux开机完整流程(极简总览)
Linux 开机不是随机启动,是一套固定顺序、层层依赖的流水线。标准开机链路:BIOS自检 → BootLoader引导 → 系统内核初始化 → 系统启动完成BootLoader(开机引导程序)三大核心作用
它是硬件与系统内核的“中间桥梁”,是多系统、开机内核加载的核心:✅ 提供开机菜单:支持 Windows+Linux 多系统切换✅ 转交引导权限:可移交引导功能,适配复杂多系统兼容场景
二、系统内核与模块(开机真正核心)
内核是 Linux 的灵魂,硬件驱动、设备调度、开机初始化,全部依赖内核和内核模块支撑。绝大多数开机驱动异常,都出在这一层。1、核心文件路径(必记)
● 开机临时驱动文件:/boot/initramfs(开机必备,缺失直接无法启动)● 内核模块目录:/lib/modules/$(uname -r)/kernel● 内核源码目录:/usr/src/linux(需手动安装,默认无)2、实操:dracut 修复/重建 initramfs
很多开机卡死、驱动加载失败,都是 initramfs 损坏或驱动不全导致。核心作用:重新生成开机临时文件,补充缺失驱动、修复损坏文件。● --add-drivers:额外添加指定硬件驱动dracut -fv /boot/initramfs-$(uname -r).img $(uname -r)3、内核模块依赖管理 depmod
系统所有模块的依赖关系,统一记录在:/lib/modules/$(uname -r)/modules.dep简单理解:告诉系统「加载这个模块需要先加载哪些依赖」。4、查看内核模块常用命令
● lsmod:查看已加载模块,展示模块大小、依赖数量● modinfo 模块名:查看模块详情(作者、说明、协议、路径)5、模块加载与卸载(3种方式区别)
① insmod:需写完整路径,不自动处理依赖,新手不推荐② rmmod:卸载模块,-f 可强制卸载正在使用的模块③ modprobe(生产首选):自动识别、自动补全依赖,无需完整路径6、模块参数永久配置
想要开机永久生效自定义模块参数,直接配置:/etc/modprobe.d/*.conf
三、开机配套配置 + 运行级别
内核负责底层支撑,这些配置文件负责定义「开机怎么运行、运行什么状态、开启什么服务」。1、开机核心配置文件分类
● /etc/modules-load.d/*.conf:单纯开机自动加载模块,无自定义参数● /etc/modprobe.d/*.conf:可自定义模块运行参数● 各类防火墙配置:firewalld、iptables、ebtables● network-scripts:网卡、网络启动配置目录2、运行级别 SystemV → systemd 对应表
配置存放路径:/usr/lib/systemd/system/runlevel*.target● 0 关机 | init 0 → systemctl poweroff● 1 单用户救援 | init 1 → systemctl rescue● 2/3/4 多用户字符模式 | init 234 → systemctl isolate multi-user.target● 5 图形桌面模式 | init 5 → systemctl isolate graphical.target● 6 重启 | init 6 → systemctl reboot
四、Grub2 开机引导(故障重灾区)
Grub2 是 CentOS7+ 默认引导程序,所有开机菜单、内核参数、多系统引导、单用户救援,全部依赖它。1、Grub2 核心优势
2、两大启动阶段
● Stage1:写入 MBR 引导扇区,完成基础硬件引导● Stage2:加载配置、内核、文件系统,生成开机菜单3、核心配置规范(重点避坑)
❌ 不要直接改:/boot/grub2/grub.cfg(重建会覆盖)✅ 正确修改位置:/etc/default/grub、/etc/grub.d/4、Grub2 磁盘分区命名规则
硬盘按 BIOS 扫描顺序编号,分区从 0 开始:5、grub.cfg 核心字段释义
6、自定义配置标准流程
1、修改 /etc/default/grub 全局参数(超时、默认内核、内核参数)2、修改 /etc/grub.d/ 脚本(自定义菜单、识别多系统)grub2-mkconfig -o /boot/grub2/grub.cfg7、实操:添加 Windows 开机菜单
在 /etc/grub.d/40_custom 写入以下内容,重建配置即可生效:8、Grub2 安全加固:开机密码管控
生产环境建议设置开机密码,防止恶意人员进入单用户、篡改内核参数。● 角色:superusers超级管理员、普通users普通用户● 安全密码:使用 grub2-mkpasswd-pbkdf2 生成加密密码● 最佳实践:修改 01_users 文件配置,安全性最高
五、生产高频实操:两种方法重置 Root 密码
忘记 Root 密码不用重装系统!下面两种方法适配 CentOS7+,100% 可行。方法一:rd.break 救援法(推荐、稳定)
4、重新挂载可读写:mount -o remount,rw /sysroot6、重置密码:echo "新密码" | passwd --stdin root7、创建 SELinux 标签(必做):touch /.autorelabel方法二:init=/bin/bash 单用户法
1、Grub 编辑内核参数,添加:init=/bin/bash3、挂载可读写:mount -o remount,rw /
六、开机故障修复:XFS 文件系统损坏
异常断电、磁盘坏道,极易导致 XFS 文件系统损坏、无法开机挂载。标准流程:进入救援模式 → 卸载故障分区 → 执行 xfs_repair 修复 → 重启恢复正常开机
七、全文核心总结(速读版)
💡开机流程:BIOS→引导程序→内核初始化,全程逐级依赖💡内核模块:系统底层核心,dracut 修开机文件,modprobe 智能管理模块依赖💡开机配置:模块配置、系统服务配置、运行级别,定义系统开机状态💡Grub2引导:开机入口,不改 grub.cfg,改完配置必须重建,支持多系统与安全加固💡故障排障:两种 Root 密码重置方案 + XFS 文件系统修复,覆盖绝大多数开机故障吃透这套 Linux 开机底层逻辑,日常排障、面试答题、服务器急救都能直接落地!