实际上,GRUB2 的引导菜单配置文件 /boot/grub2/grub.cfg 并不推荐直接手动编辑——哪怕你修改得再仔细,下次系统更新时仍可能被覆盖,甚至因语法错误而导致系统无法启动。标准且安全的做法是:在 /etc/grub.d/ 和 /etc/default/grub 下进行配置调整,然后通过 grub2-mkconfig 命令自动生成最终的引导菜单文件。这样既符合规范,又能避免出错。
第一步:在 /etc/grub.d/40_custom 中添加自定义启动项
假设你需要增加一个 FreeBSD 的引导项,可以按如下方式编写:
menuentry 'freebsd' {
insmod ufs2
set root='(hd0,msdos3)'
kfreebsd /boot/loader
}
请留意,这里使用的 40_custom 是系统预留的自定义脚本文件。将自定义条目放在此文件中,既不会被系统升级覆盖,又能在生成菜单时自动合并进去,非常可靠。
第二步:生成最终的引导菜单
完成配置修改后,只需执行以下命令即可:
grub2-mkconfig -o /boot/grub2/grub.cfg
这步操作会扫描 /etc/grub.d/ 下的所有脚本以及 /etc/default/grub 中的全局设置,最终输出一份完整且规范的启动菜单。相较于直接手写 grub.cfg,这种做法的容错率更高,也更易于维护。
如果启动菜单出错怎么办?恢复与备份技巧
即使严格按照流程操作,偶尔也可能因手误或配置冲突导致系统无法引导。遇到这种情况不必慌张,使用 LiveCD 启动系统,挂载你的 /boot 分区,然后将之前备份的 grub.cfg 文件手动覆盖回去,或者直接重新运行 grub2-mkconfig 即可恢复正常。
这里有一个实用建议:每次修改引导菜单之前,最好先备份一份当前正常的 grub.cfg。将备份文件存放在 /boot/grub2/grub.cfg.bak 或者随身 U 盘里,关键时刻能省去大量排查和折腾的时间。
