grub2 的 feature_platform_search_hint 何时可能为“No”

grub2 的 feature_platform_search_hint 何时可能为“No”

在 self-generate 中grub.cfg,有很多

if [ x$feature_platform_search_hint = xy ] ...

if [ x$feature_default_font_path = xy]...

if [ x$feature_all_video_module = xy ]...

我相信它正在检查该功能是否存在于过去,而答案可能是错误的,就像 grub2 正在开发时一样。但这么多年过去了,他们到底会不会是假的呢?

我对 更感兴趣$feature_platform_search_hint,并且根据这里,

诸如此类的预定义变量feature_platform_search_hint在构建时被硬编码在普通模块中,并且除非通过研究源代码,否则基本上没有文档记录。在当前版本的 grub 中,这些变量始终定义为 y,因此这些变量似乎表示对给定 grub 版本的特定功能的支持,并且可以对它们进行测试以编写适用于多个版本的 grub.cfg 文件的幼虫。

我不明白的是为什么自生成的grub.cfg必须如此复杂。例如,

我需要担心$feature_platform_search_hint现在和未来吗?如果我自己手动写免维护的 Grub2 菜单,我是否必须重复自行生成的 grub.cfg,例如:

        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt8 --hint-efi=hd0,gpt8 --hint-baremetal=ahci0,gpt8  23cbdbaf-9bc8-49d0-a483-1ce445cf6fb4
        else
          search --no-floppy --fs-uuid --set=root 23cbdbaf-9bc8-49d0-a483-1ce445cf6fb4
        fi

好吧,我总是使用--hint参数?

答案1

转发自这里

功能列表作为features全局变量维护normal/main.cfeature_platform_search_hint自 GRUB 2.00(2012 年发布)起可用(十年前)。因此,针对此功能的条件代码检查在所有现代 Linux 发行版中都是毫无意义的。

在撰写本文时(2019 年 9 月 27 日),最新添加的功能是feature_timeout_style,自 2.02-beta1 起可用。

我重复,“在所有现代 Linux 发行版中,针对此功能的条件代码检查毫无意义”

相关内容