如何在 Rocky Linux 中使用自定义内核更新 GRUB?

如何在 Rocky Linux 中使用自定义内核更新 GRUB?

在大多数 Linux 系统上,更新 initramfs(mkinitrd、dracut、update-initramfs...)后,您可以使用此命令“刷新”grub2

update-grub2

或者这个

grub2-mkconfig -o /boot/grub/grub.cfg

并向我展示新的 initramfs 映像..

现在这就是 Rocky Linux 8 上发生的情况

grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg 
Generating grub configuration file ...
done

grub2-mkconfig -o /boot/grub2/grub.cfg 
Generating grub configuration file ...
done

生成它..但没有读取图像!

重启时..

在此输入图像描述

只能看到救援图像!

如何在 Rocky Linux 上刷新 grub?答案dnf -y reinstall kernel-core..无效,因为这是自定义内核。

答案1

Rocky Linux 被设计为与 RHEL 的相应版本兼容,并且 RHEL 8 使用 GRUB 的blscfg模块,该模块会查找/boot/loader/entries各个内核的 BootLoaderSpec 文件的目录。

基本上,您需要编写一个名为 的文件<machine ID>-<kernel version>.conf,其中<machine ID>是 的内容/etc/machine-id<kernel version>是您的自定义内核的版本。

该文件的内容应类似于:

title <the desired GRUB menu item text here>
version <kernel version>
linux <path to the vmlinuz file with the "/boot" part omitted>
initrd <path to the initramfs file with the "/boot" part omitted> $tuned_initrd
options $kernelopts $tuned_params
grub_users $grub_users
grub_arg --unrestricted
grub_class kernel

https://www.freedesktop.org/wiki/Specifications/BootLoaderSpec/或者https://uapi-group.org/specations/specs/boot_loader_specation/了解更多详情,以及https://fedoraproject.org/wiki/Changes/BootLoaderSpecByDefault针对 Fedora/RedHat 规范的特定扩展。

blscfg遗憾的是, RHEL 8 安装介质内容中的GRUB 模块文档似乎根本不存在。您必须知道要寻找什么并能够寻找外部资源。

相关内容