我一直在尝试配置 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
先运行,但我发现这没有必要。