Linux进阶篇04:GRUB2 深度配置与内核参数

发布时间:2026/9/27 18:24:00

Linux进阶篇04:GRUB2 深度配置与内核参数
实验环境VirtualBox 虚拟机Rocky Linux 9Legacy BIOS (非 UEFI)。前置知识已完成Rocky 9 启动流程学习理解 GRUB2 是启动流程的第二阶段。核心目标掌握 /etc/default/grub 配置文件的修改逻辑学会使用 grubby 调整内核参数重点net.ifnames0并熟练掌握 Rescue救援模式的实战排障。目录一、前言二、GRUB2 配置逻辑图解三、核心配置详解/etc/default/grub四、禁用可预测网卡名五、GRUB 救援模式Rescue / Emergency1.场景 A修改 root 密码rd.break2.场景 B文件系统损坏Emergency Mode六、Rocky 9 专属grubby 工具的使用七、小结一、前言在上一份笔记中我们知道了 GRUB2 是系统启动的“守门员”。但在实际运维中我们经常需要修改 GRUB 的行为改网卡名Rocky 9 默认网卡名叫 ens33、enp0s3很难记我们想改成传统的 eth0。进单用户忘记了 root 密码或者文件系统损坏需要进入单用户模式修东西。调内核调整内存、CPU 或安全相关的内核参数。这一章我们不背命令而是搞懂 GRUB 配置的生成逻辑为什么改完 /etc/default/grub 后必须执行 grub2-mkconfig为什么推荐用 grubby 而不是直接改 /boot/grub2/grub.cfg二、GRUB2 配置逻辑图解在动手改文件之前必须先看懂这张图这是 Rocky 9 的 GRUB 管理机制重要原则/boot/grub2/grub.cfg 是由工具生成的每次执行 grub2-mkconfig 都会覆盖它。因此所有手动修改都必须写在 /etc/default/grub 里。三、核心配置详解/etc/default/grub打开配置文件sudovim/etc/default/grub以下是 Rocky 9 中你必须掌握的几个核心变量1. GRUB_TIMEOUT5 含义启动菜单等待时间秒。 踩坑点VirtualBox 默认有时是 0导致你来不及按 e 进入编辑模式。建议改成 5。 2. GRUB_DEFAULTsaved 含义设定默认启动哪个内核。 配合命令grub2-set-default 或 grubby --set-default。 作用当你升级了新内核但新内核坏了可以用这个指定回旧内核启动。 3. GRUB_CMDLINE_LINUX... 含义这是最重要的变量。它定义了传递给内核的参数。 内容包含 rootUUID...根分区位置、crashkernelautokdump等。 修改原则不要删除原有内容在引号内追加参数。四、禁用可预测网卡名痛点Rocky 9 默认使用 systemd 的命名规则如 enp0s3但在写脚本时不如 eth0 方便。修改配置文件sudovim/etc/default/grub找到 GRUB_CMDLINE_LINUX在末尾追加 net.ifnames0 biosdevname0。 GRUB_CMDLINE_LINUX... rhgb quiet net.ifnames0 biosdevname0 #改成这样就行了生成新的 GRUB 配置⚠️ 关键一步不改这一步重启无效。sudogrub2-mkconfig-o/boot/grub2/grub.cfg重启验证bash reboot ip addr # 此时应该看到网卡名为 eth0原理net.ifnames0 告诉内核不要使用 systemd 的预测命名规则回退到传统的 ethX 命名。五、GRUB 救援模式Rescue / Emergency当系统起不来时比如 /etc/fstab 写错我们需要进入救援模式。1.场景 A修改 root 密码rd.break重启虚拟机在 GRUB 菜单界面等待 5 秒那个界面按 e。找到以 linux16 或 linux 开头的那一行在行末追加rd.break按 CtrlX 启动。此时系统会停在一个 switch_root:/# 的 shell。注意此时根目录是只读的且是临时的。重新挂载根目录为可读写mount-oremount, rw /sysroot切到真正的系统根目录chroot/sysroot修改密码passwdrootSELinux 特殊处理Rocky 9 必做 由于修改了 /etc/shadowSELinux 会阻止启动必须打标签 bash touch /.autorelabel 退出并重启 bash exit exit 系统会自动重启2.场景 B文件系统损坏Emergency Mode如果 /etc/fstab 写错了挂载点系统会直接卡在 Welcome to emergency mode。现象屏幕显示 You are in emergency mode。journalctl-xb# 查看日志找红色报错vim/etc/fstab# 修正错误的 UUID 或挂载点reboot六、Rocky 9 专属grubby 工具的使用Red Hat 系Rocky推荐使用 grubby 来修改内核参数因为它比直接改文件更安全且能感知到所有已安装的内核。查看当前内核参数grubby--infoALL|grepargs给当前启动内核追加参数sudogrubby --update-kernelALL--argsnet.ifnames0# 然后重启reboot删除参数sudogrubby --update-kernelALL --remove-argsnet.ifnames0设置默认内核# 查看所有内核grubby--infoALL# 设置默认sudogrubby --set-default/boot/vmlinuz-5.14.0-xxx.el9.x86_64七、排障速查表GRUB 篇七、小结配置分离永远只改 /etc/default/grub用 grub2-mkconfig 生成最终配置。参数传递GRUB_CMDLINE_LINUX 是内核参数的集合地net.ifnames0 是改变网卡名的关键。救援核心rd.break 是改密码的钥匙/.autorelabel 是 SELinux 的保命符。工具选择日常运维用 grubby底层修复用 grub2-install。

相关新闻

鸿蒙 ArkTS 实战:随身行李称重的限重解析、物品清单、启用状态与剩余重量

鸿蒙 ArkTS 实战:随身行李称重的限重解析、物品清单、启用状态与剩余重量

2026/9/28 13:40:35

鸿蒙 ArkTS 实战:随身行李称重的限重解析、物品清单、启用状态与剩余重量 前言 随身行李称重是一个基于 ArkTS 和 ArkUI 声明式 UI 的鸿蒙单页项目,入口文件位于 entry/src/main/ets/pages/Index.ets。 本文围绕 随身行李重量管理 场景,拆解…

Ubuntu开发环境搭建(Python-Go-Rust)

Ubuntu开发环境搭建(Python-Go-Rust)

2026/8/23 4:14:58

Ubuntu开发环境搭建(Python/Go/Rust) 一、开发环境概述 1.1 为什么需要搭建开发环境 一个良好的开发环境是高效编程的基础,它应该具备以下特点: 统一的工具链:所有开发人员使用相同版本的工具 快速部署:能够快速搭建和复制开发环境 隔离性:不同项目之间互不干扰 可扩…

1.深入解析 C 语言 scanf:从底层机制到常见“大坑”

1.深入解析 C 语言 scanf:从底层机制到常见“大坑”

2026/8/23 4:14:58

一、 什么是 scanf? scanf 是 C 语言标准库中的格式化输入函数,用于从标准输入(键盘缓冲区)中读取并解析数据。 所谓的“格式化”,是指由开发者通过格式控制字符串指定输入的数据类型。例如 %d 表示将输入的字符流解析…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/28 4:08:17

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/9/27 1:30:29

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

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/28 2:15:29

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/9/28 3:14:54

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/9/28 3:58:00

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

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/28 3:47:14

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…

远程协作的工作台整理

远程协作的工作台整理

2026/9/26 14:29:04

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

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

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

2026/9/28 5:05:21

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

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

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

2026/9/26 23:35:16

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