I just encountered the issue that the parameter GRUB_TIMEOUT in /etc/default/grub does not reduce the timeout for uefi boot anymore. I was able to pinpoint the issue in the grub config to line 98 [1]. From your issue here I understand that this is the way it is supposed to work.
This should be documented somewhere as the documentation does not mention that this setting does not work for uefi boot [2].
As a workaround you could edit /etc/grub.d/00_header to check in line 387 if the timeout is less than 5 [3].
[1]
/etc/default/grub ~
GRUB_TIMEOUT=5
/boot/grub/grub.cfg:98 ~
if [ $grub_platform = efi ]; then
set timeout=30 # this value is the issue
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
fi
fi
[2]
info -f grub -n 'Simple configuration' ~
'GRUB_TIMEOUT'
Boot the default entry this many seconds after the menu is
displayed, unless a key is pressed. The default is '5'. Set to
'0' to boot immediately without displaying the menu, or to '-1' to
wait indefinitely.
[3]
/etc/grub.d/00_header:387 ~
- set timeout=${GRUB_RECORDFAIL_TIMEOUT:-30}
+ set timeout=${$(if (( $GRUB_TIMEOUT < 5 )); then echo "5"; else echo "$GRUB_TIMEOUT"; fi):-30}
I just encountered the issue that the parameter GRUB_TIMEOUT in /etc/default/grub does not reduce the timeout for uefi boot anymore. I was able to pinpoint the issue in the grub config to line 98 [1]. From your issue here I understand that this is the way it is supposed to work.
This should be documented somewhere as the documentation does not mention that this setting does not work for uefi boot [2].
As a workaround you could edit /etc/grub. d/00_header to check in line 387 if the timeout is less than 5 [3].
[1] grub.cfg: 98 ~ timeout_ style = xy ] ; then
/etc/default/grub ~
GRUB_TIMEOUT=5
/boot/grub/
if [ $grub_platform = efi ]; then
set timeout=30 # this value is the issue
if [ x$feature_
set timeout_style=menu
fi
fi
[2]
info -f grub -n 'Simple configuration' ~
'GRUB_TIMEOUT'
Boot the default entry this many seconds after the menu is
displayed, unless a key is pressed. The default is '5'. Set to
'0' to boot immediately without displaying the menu, or to '-1' to
wait indefinitely.
[3] d/00_header: 387 ~ ${GRUB_ RECORDFAIL_ TIMEOUT: -30}
/etc/grub.
- set timeout=
+ set timeout=${$(if (( $GRUB_TIMEOUT < 5 )); then echo "5"; else echo "$GRUB_TIMEOUT"; fi):-30}