To confirm this, I have tried it with te GRUB_TIMEOUT line commented out and not. This has no effect.
echo -n "Press ESC for the menu... "
With version 1.97~beta3-1ubuntu8 I am still not seeing it fixed.
There is still no evidence of any hidden timeout settings being imported into '/boot/grub/grub.cfg' and testing confirmed no difference in behavior. drs305 if this supposedly works for you, then post the evidence of the settings from your grub.cfg file. On a side note, commenting out the timeout line simply defaults the setting to 5.
Turns out the ONLY way I can hide the menu is with the one setting I was using after the latest grub update.
Making the value "false" or commenting the line does not work. Of course, I can hide my menu but with this line I lose my ability to probe for kernels on other partitions unless I put it in a custom script.
So the 'hidden' feature is still broken.
Still getting all the messages onscreen after grub and prior to the logon splash too, by the way.
Problem still present in 1.97~beta4-1ubuntu1.
This was working fine for me, but one of the latest nightly updates may have broken it - the grub menu is now appearing on boot, which is weird.
Just curious, but for people who are unable to have a hidden menu, do you have more than 1 OS on your computer? It seems like update-grub is not correctly pulling the value of GRUB_HIDDEN_TIMEOUT into grub.cfg. Is anyone with only Karmic installed on their machine experiencing this bug of not being able to hide the Grub menu?
I run a 64-bit desktop with only Ubuntu releases and a 32-bit laptop with XP and Karmic. The Desktop hides the menu fine, the laptop hidden menu still doesn't work.
The only difference in the setups other than 32/64 bit is that the one which refuses to hide the menu is dual booting with XP. So anecdotally at least this supports your suspicion.
Yes, I've always seen the grub2 menu here, since installing the alpha, right up to date.
Also there's a pile of menu entries for most if not all of the past kernel versions since the original install.
I got the impression that the script responsible for this is in /etc/grub.d/00_header; but a quick look through there shows me that it doesn't even reference GRUB_HIDDEN_TIMEOUT. It is in 03_os_prober though, so I'm going to try the tip given above to turn that off.
Yes, doing that worked, but with the (little-lamented) loss of my WinXP boot menu entry. In any case an easy way to get that back was to re-enable the os-prober, run update-grub, then copy the winxp menu entry to the end of /etc/grub.d/40_custom. That's just my workaround for now; ideally we want 30_os_prober to do its stuff, add the menu entries, but still offer no menu if that's what the user wants.
I had a fresh install of Karmic RC, and the menu was hidden out of the box. Then I edited /etc/default/grub (to add acpi=off) and now I can't get rid of the menu no matter what. GRUB_DISABLE_OS_PROBER didn't work for me.
I guess it is the "update-grub" to blame, for I only added "acpi-off" on a fresh install (which hid the menu successfully) and when I update-grub the menu sticks..
Confirmed, only one little change on the /etc/default/grub file force the menu without configurable timeout settings. I tried 0 and 1 as timeout here.
Second machine affected by this problem, found the reason in synaptic!
Both sections of the attachment "grub.examples" contain the grub and grub.cfg contents.
While we didn't figure out the actual root cause of this problem, drs305 has pretty well diagnosed all the symptoms and has a near-perfect working solution. I'll let him tell you all about it.
This should be considered a bug, even if the overall effects are small. After upgrading to GRUB 2, I just wanted to get the exact same user interaction behavior as I had with GRUB (legacy), and this bug prevents that from being the case.
Here is some more info for people still unable to hide the menu via the normal entries in /etc/default/grub.
Earlier I suggested adding "GRUB_DISABLE_OS_PROBER=true"
I've now found a way to keep os-prober active and to get the hidden menu and hidden timeout features.
1. The menu will be hidden for 18 seconds. Change the value as you wish. In this hack GRUB_HIDDEN_TIMEOUT prefers a blank to "0" if you don't want to hide the menu, although 0 will also work.
2. The GRUB_TIMEOUT value in /etc/default/grub will be honored. If and when the menu is displayed, it will be displayed for the value of this line and then boot the default OS.
3. The GRUB_HIDDEN_TIMEOUT line will be used.
4. The GRUB_HIDDEN_TIMEOUT_QUIET line will be honored.
5. You do not need the "GRUB_DISABLE_OS_PROBER" line in /etc/default/grub, so the menu will be hidden and it will search for other OS's.
This is just a hack to get the menu to hide. It is not a long term or even 'pretty' solution.
Which checks if GRUB_FORCE_HIDDEN is true, otherwise continue with the default behavior. This allows you to re-enable the menu by changing GRUB_FORCE_HIDDEN to false if you wish to see the menu again.