You have
GRUB_TIMEOUT_STYLE="hidden"
in /etc/default/grub
but you also have the line
GRUB_HIDDEN_TIMEOUT="0"
in /etc/default/grub
.
With the first one you tell Grub to hide the menu and with the latter you tell Grub to show the menu after 0 seconds.
You should remove the line
GRUB_HIDDEN_TIMEOUT="0"
from /etc/default/grub
and then run sudo update-grub
.
Here the essential part from the GRUB Manual:
‘GRUB_HIDDEN_TIMEOUT’
Wait this many seconds before displaying the menu. If ESC is pressed during
that time, display the menu and wait for input according to ‘GRUB_TIMEOUT’. If > a hotkey associated with a menu entry is pressed, boot the associated menu
entry immediately. If the timeout expires before either of these happens,
display the menu for the number of seconds specified in ‘GRUB_TIMEOUT’ before
booting the default entry.
If you set ‘GRUB_HIDDEN_TIMEOUT’, you should also set ‘GRUB_TIMEOUT=0’ so that > the menu is not displayed at all unless ESC is pressed.
This option is unset by default, and is deprecated in favour of the less
confusing ‘GRUB_TIMEOUT_STYLE=countdown’ or ‘GRUB_TIMEOUT_STYLE=hidden’.
Another possibility is Grub's built-in recordfail
-function. Whenever a menu-entry is chosen (manually or automatically), Grub will set the variable recordfail=1
and saves it in /boot/grub/grubenv
.
During boot the variable will be unset by systemd if the boot is successful, if the boot fails, the variable will remain unchanged in /boot/grub/grubenv
.
Everytime time Grub starts, Grub will read /boot/grub/grubenv
and checks if recordfail
is set to 1
. So Grub will know if the last boot succeeded or not. If the last boot wasn't successful, Grub will override your settings from /etc/default/grub
to display the boot menu for 30 seconds.
You can check the content of /boot/grub/grubenv
with
cat /boot/grub/grubenv
I have moved to Firefox and the problem is now fixed. Thank you for your help.
– phanky5 Sep 23 '19 at 08:53