Hide Forgot
Description of problem: If you set GRUB_HIDDEN_TIMEOUT in /etc/default/grub, grub2-mkconfig produces code which looks like this: if sleep --interruptible <GRUB_HIDDEN_TIMEOUT> ; then set timeout=<GRUB_TIMEOUT> fi Actual results: This codes waits <GRUB_HIDDEN_TIMEOUT> seconds for a key to be pressed, after which it drops the user to the regular boot menu with a <GRUB_TIMEOUT> second timeout. Expected results: Documentation says: Wait this many seconds for a key to be pressed before displaying the menu. **If no key is pressed during that time, boot immediately.** Version-Release number of selected component (if applicable): grub2-1.99-12.fc16.x86_64 grubby-8.3-1.fc16.x86_64 How reproducible: Always Additional info: Instead, the code produced should look more like this: if sleep --interruptible <GRUB_HIDDEN_TIMEOUT> ; then set timeout=0 else set timeout=<GRUB_TIMEOUT> fi
Yes, this seems a bit odd, but if you also set GRUB_TIMEOUT=0 then it seems to work just fine.
There's nothing in doc to indicate these values are interdependent. Also doc says "Set to '0' to boot immediately without displaying the menu." Hence, I can't see how this is designed to be the correct action. I believe this behavior is unintended, and not by design.
The documentation was updated upstream. It was also discussed there and it was decided that while this behaviour was slightly unintuitive, it's not bad enough to justify breaking compatibility.