Ubuntu – Grub 2 splash screen isn’t showing in hidden mode until I press a key

10.04grub2plymouth

Using Lucid, in the form of Turnkey Core. I'm setting up Grub to boot into Windows by default, with an option to boot into Ubuntu as a recovery mode, with a script to restore a default image to the Windows partition.

The idea is to have a splash screen which tells the user to hold Shift for recovery options, otherwise it'll just boot to Windows.

Unfortunately, while I can get my splash screen to work, it doesn't show up until I press a key — doesn't seem to matter which key, as arrow keys, letters, and numbers all seem to work. At that point, the splash screen shows up and displays at the top left corner — this appears to be the GRUB_HIDDEN_TIMEOUT, and the number updates every time I press a key; otherwise, it remains static until the actual countdown has finished. (I guess this indicates that it is also not showing the countdown, which it should be doing, as GRUB_HIDDEN_TIMEOUT_QUIET is set to false.) Everything functions normally from this point: If I hold Shift, the menu is displayed, otherwise it boots into Windows.

Got the menu to be hidden in multi-OS mode by using #11 here.

Any ideas?

Clarification: My issue is that the splash screen does not appear until I press a key. I need the splash screen to show up on its own.

Contents of /etc/default/grub and /boot/grub/grub.cfg available here

Best Answer

Posted as the answer on behalf of OP:

After receiving a suggestion to ignore the splash screen entirely, and just use nested Grub menus, I decided to give that a shot. In the process, I found out that I can create a Grub menu which has a timeout of 0 and automatically loads another Grub via configfile, and, in so doing, actually triggers the splash screen on the second menu. So, grub.cfg now contains this, with default set to 1 and the timer set to 0:

menuentry "Other menu" { configfile (hd0,1)/boot/grub/othergrub.cfg }

When it loads the second Grub, the splash screen from the second Grub loads up just fine, too -- no keypresses required.

Weird workaround, but it does the trick.

Related Question