我有一台运行 CentOS 5.4 的设备(即:一台位于机架式机箱中的 PC,它位于机架中,可以工作多年,没有人真正关注它,直到它报废)。尝试将内核升级到最新的 5.x 版本(2.6.18 build 406)并遇到此错误消息。
我读过了https://stackoverflow.com/questions/27712084/grubby-fatal-error-unable-to-find-a-suitable-template,但 Q 并未提供任何解释或解决方案。
我也读过https://bbs.archlinux.org/viewtopic.php?id=166217并尝试过......也没有运气。
我真的不想为内核升级编写一些黑客脚本包装来完成该工具应该做的事情,所以我希望有一个解决方案。
我的 grub 文件位于 /boot/grub (grub.conf)。 /boot/grub/grub 中有一个符号链接指向它,因为 /etc 中也有一个符号链接同样指向它。
实际的 grub.conf (为简洁起见,没有注释):
default=0
timeout=5
splashimage=(hd0,2)/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-348.16.1.el5)
root (hd0,5)
kernel /vmlinuz-2.6.18-348.16.1.el5 ro root=LABEL=ROOT
initrd /initrd-2.6.18-348.16.1.el5.img
运行安装后脚本 new-kernel-pkg 的内核 rpm 的输出(我在标题周围添加了引号,以便可以重新运行该命令):
/sbin/grubby --add-kernel=/boot/vmlinuz-2.6.18-406.el5 --initrd /boot/initrd-2.6.18-406.el5.img --copy-default --make-default --title "CentOS (2.6.18-406.el5)" --args=root=LABEL=ROOT --remove-kernel=TITLE="CentOS (2.6.18-406.el5)"
这一切对我来说都是有效的。我只是不明白 grubby 工具期望在 grub.conf 中找到什么,而我的工具却无法提供满足它的功能。任何人?
笔记:如果我修改上面的脚本以添加--bad-image-okay
到 grubby 命令行,它将按照我的预期工作:新内核被添加到 grub.conf 文件中并且一切都是正确的...但是该选项应该忽略错误并且那么,我的配置出了什么问题,或者更准确地说,我告诉 grubby 忽略什么错误?