GRUB 在配置之间交替

GRUB 在配置之间交替

我一直在尝试配置 Grub 以提供隐藏的 3 秒倒计时,然后启动到默认选项。

看起来发生的情况是,Grub 会随机交替执行上述操作,并显示带有 25 秒倒计时的菜单。

这种情况在完全重启和从休眠状态恢复时都会发生。我无法建立任何可以预测何时发生这种情况的模式。有时它会连续 2 或 3 次给出一个配置,有时会切换。

我怎样才能使其保持一致?

Ubuntu 桌面 18.04

内容/etc/default/grub

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=3
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT_STYLE=countdown
GRUB_TIMEOUT=3
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nouveau.modeset=0"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=/dev/nvme0n1p3"
#GRUB_CMDLINE_LINUX_DEFAULT="text"
#GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""
GRUB_INIT_TUNE="480 440 1"

我也用过grub-customizer 5.1.0

答案1

事实证明,问题实际上是在文件中设置了“recordfail”字段/boot/grub/grubenv

重置的方法是使用以下命令:

sudo /usr/bin/grub-editenv /boot/grub/grubenv unset recordfail

但您真正需要的是将其作为启动序列的一部分来完成,无论是正常启动还是休眠启动。

这可以通过服务来完成。

使用此服务描述符

[Unit]
Description=Unset recordfail in grubenv after hibernation.
After=hibernate.target

[Service]
Type=oneshot
ExecStart=/usr/bin/grub-editenv /boot/grub/grubenv unset recordfail

[Install]
WantedBy=hibernate.target hybrid-sleep.target

然后使用安装这个答案中的说明

创建上述描述符为

/etc/systemd/system/grub-unset-recordfail.service

然后:

sudo systemctl start grub-unset-recordfail
sudo systemctl enable grub-unset-recordfail
sudo systemctl stop grub-unset-recordfail

一些参考资料建议您需要sudo systemctl daemon-reload先运行,但我发现这没有必要。

相关内容