grub 在启动时发出消息 - “错误 - 找不到命令 hwmatch”

Org*_*ble 7 grub2 uefi

这个问题Error unknown command hwmatch正是我要问的,但由于不可重现而被关闭。我的重现性很强。

Ubuntu 18.04 全新安装在 64 位 UEFI 机器上。默认的 grub 启动选项工作正常,但我想添加一个简短的倒计时(我的正常配置)。/etc/default/grub正常编辑并运行后sudo update-grub,倒计时有效,但出现问题标题中显示的错误。

我在封闭问题中尝试了解决方案(复制文件),但它似乎不适合我的配置。坦率地说,我发现答案令人困惑。

我还尝试编辑/etc/grub.d/10_linux以注释掉使用hwmatch. 之后我做了一个sudo update-grub但我仍然得到错误。

我怎样才能倒计时而不看到这个错误?

根据评论编辑 -

已安装的库存 grub(显示所有未注释掉的行)

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
Run Code Online (Sandbox Code Playgroud)

编辑 grub 以提供倒计时(显示所有未注释掉的行)

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=countdown
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
Run Code Online (Sandbox Code Playgroud)

Lev*_*nte 3

要消除错误消息,请将此行添加到/etc/default/grub

GRUB_GFXPAYLOAD_LINUX=keep
Run Code Online (Sandbox Code Playgroud)

来源: https: //bugs.launchpad.net/ubuntu/+source/grub2-signed/+bug/1840560上的#4 评论

hwmatch这将使代码中的条件以绕过代码块引用的方式进行评估。

至于缺少的命令(或不)有多么令人担忧:根据mook765 的评论,它只是 grub-pc 的一部分,而不是 grub-efi 的一部分,并且在 grub-efi 安装的情况下被认为是一个错误。

关于倒计时/菜单的自愿备注:

使用

GRUB_TIMEOUT_STYLE=menu
Run Code Online (Sandbox Code Playgroud)

代替

GRUB_TIMEOUT_STYLE=countdown
Run Code Online (Sandbox Code Playgroud)

将使菜单可见(同时保留倒计时功能(位于屏幕底部)和自动回退选择完好无损)。

sudo update-grub编辑完成后不要忘记运行。