grub.cfg 不可直接编辑,应通过 /etc/default/grub 和 /etc/grub.d/ 下脚本配置;菜单名称可通过 grub_distributor 修改,windows 名称需用 bcdedit 在 windows 中调整;字体、背景等美化在 centos 7 中基本不可行。

grub.cfg 不能直接编辑,改了也会被覆盖
CentOS 7 的 /boot/grub2/grub.cfg 是自动生成的文件,任何手动修改都会在下次执行 grub2-mkconfig 或内核更新后被重写。强行编辑不仅无效,还可能引发启动失败。
真正可控的入口只有两个:/etc/default/grub(控制生成逻辑)和 /etc/grub.d/ 下的脚本(控制菜单结构)。菜单样式本身不支持“CSS 式”定制,但可通过以下方式影响显示效果:
-
GRUB_TIMEOUT=5:控制菜单停留秒数,设为0表示不等待、直接进默认项 -
GRUB_DISABLE_SUBMENU=y:折叠内核旧版本菜单,避免出现二级子菜单 -
GRUB_TERMINAL_OUTPUT="console":强制文本模式输出,禁用图形 splash(对某些显卡更稳定) -
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"中删掉quiet可让启动过程打印内核日志,但不会改变菜单外观
menuentry 名称可自定义,但需同步更新 grub.cfg 生成逻辑
你想把 "CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)" 改成 "My CentOS Server"?可以,但不能只改 grub.cfg 里的字符串。
正确做法是:修改 /etc/grub.d/10_linux 脚本中生成 menuentry 的模板部分(搜索 echo "menuentry" 行),或更稳妥地——在 /etc/default/grub 中加一行:
GRUB_DISTRIBUTOR="My CentOS Server"
然后运行:
grub2-mkconfig -o /boot/grub2/grub.cfg- 确认新名称已生效:
awk -F' '$1=="menuentry " {print $2}' /boot/grub2/grub.cfg
注意:GRUB_DISTRIBUTOR 会影响所有由 10_linux 生成的条目,不适用于 Windows 或 rescue 条目。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
Windows 启动项名字来自 EFI 分区,不能靠 GRUB 配置改
双系统下看到的 "Windows Boot Manager (on /dev/sda2)" 这类名称,实际由 Windows 自己写入 EFI 分区的 \EFI\Microsoft\Boot\bootmgfw.efi 元数据决定,GRUB 只是读取并展示它。
想改这个名称,唯一办法是用 Windows 工具(如 bcdedit)修改其启动管理器描述:
- 在 Windows 管理员命令提示符中运行:
bcdedit /set {bootmgr} description "My Windows" - 重启进入 CentOS,再执行
grub2-mkconfig,新描述才会出现在 GRUB 菜单里 - 若修改失败,检查是否启用了 Fast Startup —— 它会锁定 EFI 分区,导致
bcdedit不生效
字体/分辨率/背景图支持极弱,别白费劲
CentOS 7 默认 GRUB 使用的是 console 终端驱动,不支持 TrueType 字体、高 DPI 或 PNG 背景。所谓“美化菜单”在标准安装里基本不可行。
少数例外情况:
- 如果你用的是 UEFI 模式 + Intel 显卡 +
grub2-efi-x64-modules包完整安装,可尝试加载gfxterm和png模块,但成功率低、兼容性差 -
/boot/grub2/themes/目录默认为空,手动放进去的 theme 文件夹不会被自动识别,必须重写00_header脚本并硬编码路径 - 多数人折腾到最后发现:文字颜色变不了、图标加不上、选中高亮位置偏移——因为 GRUB 2.02(CentOS 7 所用版本)对 theme 的支持是半成品
真有视觉需求,建议直接换用 systemd-boot 或 rEFInd,它们对现代显示的支持更实在。GRUB 在 CentOS 7 里,就是个能用、够稳、但别指望它好看的启动器。










