You are not logged in.
Hello. Hope this is the right subgroup to post in. Seems to be an issue with GNU GRUB configuration or bug.
Below, are the etc/default/grub and boot/grub/grub.cfg files on my system. GRUB version is 2.02.
Althought I have configured the boot menu timout to 5 seconds, the boot menu only flashes on screen briefly for 3/100ths of a second and disappears.
I have also tried with GRUB_TIMEOUT=-1, and all sorts of combinations of configuration changes. Nothing does anything to get the boot menu to actually stay on the screen.
I have used a burst frame camera to take a picture of the screen that displays and to time how long it is present.
(EDIT: I originally reported this for GRUB v2.02~rc2, but I have since upgraded to v2.02 with no change.)
/etc/default/grub ::
# GRUB boot loader configuration
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
#ALSO TRIED WITH: GRUB_TIMEOUT=-1
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX="cryptdevice=/dev/sda5:cryptroot root=/dev/mapper/cryptroot crypto=sha512:aes-xts-plain64:512:0:"
GRUB_CMDLINE_LINUX_DEFAULT="quiet loglevel=3"
# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"
# Uncomment to enable booting from LUKS encrypted devices
#GRUB_ENABLE_CRYPTODISK=y
# Uncomment to enable Hidden Menu, and optionally hide the timeout count
#GRUB_HIDDEN_TIMEOUT=5
#GRUB_HIDDEN_TIMEOUT_QUIET=true
# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console
# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE=auto
# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep
# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true
# Uncomment and set to the desired menu colors. Used by normal and wallpaper
# modes only. Entries specified as foreground/background.
#GRUB_COLOR_NORMAL="light-blue/black"
#GRUB_COLOR_HIGHLIGHT="light-cyan/blue"
# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/path/to/wallpaper"
#GRUB_THEME="/path/to/gfxtheme"
# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"
# Uncomment to make GRUB remember the last selection. This requires to
# set 'GRUB_DEFAULT=saved' above.
#GRUB_SAVEDEFAULT="true"
/boot/grub/grub.cfg ::
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="0"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if loadfont unicode ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=en_US
insmod gettext
fi
terminal_input console
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=5
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Arch Linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-d9b29f82-0f88-48e8-97fd-98567f8449f5' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos1' --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 24d7cf20-7239-476e-8144-8fa204bea41f
else
search --no-floppy --fs-uuid --set=root 24d7cf20-7239-476e-8144-8fa204bea41f
fi
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=d9b29f82-0f88-48e8-97fd-98567f8449f5 rw cryptdevice=/dev/sda5:cryptroot root=/dev/mapper/cryptroot crypto=sha512:aes-xts-plain64:512:0: quiet loglevel=3
echo 'Loading initial ramdisk ...'
initrd /intel-ucode.img /initramfs-linux.img
}
submenu 'Advanced options for Arch Linux' $menuentry_id_option 'gnulinux-advanced-d9b29f82-0f88-48e8-97fd-98567f8449f5' {
menuentry 'Arch Linux, with Linux linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-d9b29f82-0f88-48e8-97fd-98567f8449f5' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos1' --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 24d7cf20-7239-476e-8144-8fa204bea41f
else
search --no-floppy --fs-uuid --set=root 24d7cf20-7239-476e-8144-8fa204bea41f
fi
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=d9b29f82-0f88-48e8-97fd-98567f8449f5 rw cryptdevice=/dev/sda5:cryptroot root=/dev/mapper/cryptroot crypto=sha512:aes-xts-plain64:512:0: quiet loglevel=3
echo 'Loading initial ramdisk ...'
initrd /intel-ucode.img /initramfs-linux.img
}
menuentry 'Arch Linux, with Linux linux (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-d9b29f82-0f88-48e8-97fd-98567f8449f5' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,msdos1' --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 24d7cf20-7239-476e-8144-8fa204bea41f
else
search --no-floppy --fs-uuid --set=root 24d7cf20-7239-476e-8144-8fa204bea41f
fi
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=d9b29f82-0f88-48e8-97fd-98567f8449f5 rw cryptdevice=/dev/sda5:cryptroot root=/dev/mapper/cryptroot crypto=sha512:aes-xts-plain64:512:0: quiet loglevel=3
echo 'Loading initial ramdisk ...'
initrd /initramfs-linux-fallback.img
}
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "System restart" {
echo "System rebooting..."
reboot
}
menuentry "System shutdown" {
echo "System shutting down..."
halt
}
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
First screen in boot process:
The boot menu that displays for 3/100ths of a second:
Then, it quickly proceeds to:
Last edited by rogerthat (2018-10-11 12:27:10)
Offline
What if you keep a key (eg. arrow down) pressed? (Theory would be spurious input, in particular o fthe enter key - the timeout is there and acknowledged by grub)
Offline
Thanks for the suggestion, Seth.
Immediately after entering the BIOS boot password, I tried holding down: down-arrow, Esc, left-shift, and right-shift.
Nothing made the boot menu linger.
I also tried a few times booting while pressing the down-arrow as fast as I could.
Still the boot menu just flashed by.
Wonder why I'm on 2.02~rc2 when I see on the GRUB website 2.02 is out. Would an upgrade help?
Last edited by rogerthat (2018-10-10 16:31:59)
Offline
Arch ships grub 2.0.2 since late April, see https://git.archlinux.org/svntogit/pack … b6531d5a09
Unless you didn't update since half a year, you probably never ran grub-install since then?
(The keyboard idea was btw. to boot a different entry, but that doesn't seem to be the case)
Offline
OK. So I ran grub-install and upgraded to 2.02 and reran grub-mkconfig.
The boot menu still disappears; the only difference is it now says version 2.02 when it flashes briefly on screen.
Last edited by rogerthat (2018-10-10 16:32:21)
Offline
Supposing GRUB simply somehow gets the time wrong, I'd try to change the timeout to either some very high value or -1 to disable automatic selection.
Also, to test seth's assumption regarding the enter key, you could disable the menu, by just uncommenting any menuentry or submenu in grub.cfg. You will then be dropped in to a command line interface. You might want to put the default menuentry's content into a function.
Also, there is sendkey [0] which could possibly be used to emulate arrow keys.
Offline
Thank you.
Yes, I tried timeout of -1, and it didn't even stop then either!
I didn't understand what you said about uncommenting any menuentry...?
Offline
Well, this suggests that actually grub got the time wrong somehow. If you wanted to verify, you could set a very high value, e.g. 5 * 1000 / 3 =~ 1666. Assuming there is a linear shift, this should be roughly equivalent to a timeout of 5 seconds.
By uncommenting (probably it's rather commenting), I mean to put a `#' at any line in the `/etc/grub.d/10_linux' section (Also on might just remove it, since it's autogenerated anyways). This would prevent grub from loading the menu and hence prevent the enter key from triggering the boot process. But since the problem is apparently not related to the enter key, there is no longer any point in trying that.
EDIT: Also, in the console (reachable by pressing `c' in the GRUB menu) you could try the sleep command with various values.
Last edited by respiranto (2018-10-10 23:09:11)
Offline
Thanks for the ideas, respiranto...
Well, this suggests that actually grub got the time wrong somehow.
A value of -1 should be an infinite timeout. And since the boot menu still disappears instantly, I don't see the logic here that would point to grub getting the timeout wrong?
If you wanted to verify, you could set a very high value, e.g. 5 * 1000 / 3 =~ 1666. Assuming there is a linear shift, this should be roughly equivalent to a timeout of 5 seconds.
Anything is worth a try. I put the timeout to 50000, and still the menu disappeared instantly.
Also, in the console (reachable by pressing `c' in the GRUB menu) you could try the sleep command with various values.
I cannot interact with the GRUB menu. ;-) That's my problem.
Last edited by rogerthat (2018-10-11 12:35:30)
Offline
What if you garble the Archlinux entry, ie. eg. change "24d7cf20-7239-476e-8144-8fa204bea41f" to "24d7cf20-7239-476e-8144-8fa204bea410" (only the last f -> 0)
BE WARNED! That this could prevent you from booting if grub doesn't throw you into a shell or the keyboard doesn't work there, so be sure to have a usb key around to boot from and undo this change if required.
Offline
A value of -1 should be an infinite timeout. And since the boot menu still disappears instantly, I don't see the logic here that would point to grub getting the timeout wrong?
Sorry, I appear to have inverted your statement in my head, hence completetly misunderstood you. Disregard what I said in my last post.
Still, I'd suggest to disable the menu. You could also simply delete the grub.cfg (or rather rename it to something else). You should then be dropped to GRUB's CLI. If the enter key is the problem, you should notice then.
Though be warned here as well: This might prevent you from booting the machine.
Offline