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。

相关新闻

最新新闻

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现 【免费下载链接】serenity The Serenity Operating System 🐞 项目地址: https://gitcode.com/GitHub_Trending/se/serenity 导读 本文以 getopt(3) 手册 为核心&a…

2026/9/30 14:41:37
轻量服务器还是ECS?大促云服务器选购与避坑实战指南

轻量服务器还是ECS?大促云服务器选购与避坑实战指南

每年大促节点,群里永远有人在问同一个问题:“38元的轻量服务器到底怎么抢?为什么我每次点进去都是已售罄?68元直购和99元的ECS我到底选哪个?”作为一个常年帮团队和自己采购云服务器的老用户,我太清楚这种纠…

2026/9/30 21:32:07
为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南 【免费下载链接】agents Multi-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity 项目地址:…

2026/9/30 19:41:56
PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署 【免费下载链接】PaddleOCR Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between i…

2026/9/30 18:23:43
Spring源码解析:构造器注入的类型转换与候选匹配机制

Spring源码解析:构造器注入的类型转换与候选匹配机制

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

2026/9/29 22:57:57
openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由 【免费下载链接】openai-agents-python A lightweight, powerful framework for multi-agent workflows 项目地址: https://gitcode.com/GitHub_Trending/op/openai-agents-pyth…

2026/9/30 21:32:11

日新闻

周新闻

月新闻