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:16)
Offline
If you boot into your bios menu, does your keyboard work okay? I wonder if it's quitting and autoselecting the first item because it can't detect a keyboard at this stage.
Architecture: pentium4, Testing repos: Yes, Hardware: EeePC 901+2GB RAM+OS half on the SD card.
Offline
Thank you, Levi.
I tried your suggestion, and the keyboard works fine in the bios configuration area.
I also 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.  :-P
I also tried holding down keys 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.
Offline
Did you check the timeout value in the generated /boot/grub/grub.cfg?
Maybe grub is not reading the grub.cfg you think, for instance it's on another partition?
Offline
That screenshot suggests grub thinks it's about to wait for 5 second before doing anything, but moments later seems to decide to just boot the first menu item anyway, unless there's perhaps something else taking over from it at this point. I don't really understand what modern machines are capable of at this point, although I don't really have a handle on the kind of system running here. Could we get some kind of specs please? UEFI or MBR?
Architecture: pentium4, Testing repos: Yes, Hardware: EeePC 901+2GB RAM+OS half on the SD card.
Offline
Yes, I included the /boot/grub/grub.cfg above, and it contains "set timeout=5".
Also, as levi noted, the screenshot even shows that it will wait 5s. But it doesn't! It immediately disappears.
The machine is a MSI U100. So that's pretty old. And it's using MBR and BIOS, no UEFI.
Offline
you could try a timeout of -1 (wait forever) or just a longer timeout, e.g. 50. Maybe grub miscounts the ticks..
Offline
Yes, I tried a timeout of -1, and some other combinations of settings too. Nothing made the menu stay on screen! ![]()
Offline
I hate to suggest you could try syslinux. :-)
grub2 is easier for newer machines
grub/syslinux plays better with really old machines in my experience..
..but I really appreciate your screenshots, they add a certain something.. :-)
Offline
Ah really? I could look into that. It's a pacman package?
Offline
yes, https://wiki.archlinux.org/index.php/syslinux, I used it as it had less dependencies which came in handy during i486 bootstrapping.
pacman -S syslinux
syslinux-install_update -i -a -m
The script doesn't know about complicated setups, then you have to fiddle syslinux.cfg yourself.
Grub 1 (or rather 0.97) has been moved to the AUR , so you have to build it first:
Offline
I use ext4 and dm-crypt on my main volume. It looks like syslinux won't support that, right?
Offline
Syslinux most likely cannot read encrypted partitions.
With an unencrypted /boot partition I fail to see, why this should not work. Syslinux files, kernel and initramfs must be on this /boot partition.
Offline
Yes, I run an encrypted home directory on my build server. It asks for the password as it boots up before I can log on. which is controlled via a systemd unit file. Does the initramfs contain enough of systemd and associated unit files to get that far before it needs to mount the root fs?
Architecture: pentium4, Testing repos: Yes, Hardware: EeePC 901+2GB RAM+OS half on the SD card.
Offline
Hello, first of all I'm sorry for my English, it isn't my language.
If your problem is only grub timeout, you could try to install grub-customizer and with it set grub-timeout to a value you've never tried before ( for example 7 or 8), then click on save option on the left, exit and reboot.
Offline