How to hide grub menu in ubuntu 14.04
I have two operating systems: Windows 8.1 and Ubuntu 14.04. I want to hide grub menu. I'm using grub 2.02~beta2-9. I tried following combinations of /etc/default/grub
:
-
\#GRUB_HIDDEN_TIMEOUT=1 \#GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=0
grub menu is visible for 10 seconds (if timeout is set for value larger than 0 it is displayed correctly:
GRUB_TIMEOUT=5
- 5 seconds delay) -
GRUB_HIDDEN_TIMEOUT=1 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=0
grub menu is visible, I also tried
GRUB_HIDDEN_TIMEOUT=false
and setting bothGRUB_TIMEOUT
andGRUB_HIDDEN_TIMEOUT
to zero and non-zero values -
\#GRUB_HIDDEN_TIMEOUT=1 \#GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=1 GRUB_TIMEOUT_STYLE=hidden
grub menu is visible for 1 second, tried also
GRUB_TIMEOUT_STYLE=countdown
with the same result, ifGRUB_TIMEOUT
is set to 0, 10 seconds delay
After each change I type update-grub
and restart computer to see the results.
According to GRUB documentation found in info -f grub -n 'Simple configuration'
second way is deprecated. The right way is the third one - by using GRUB_TIMEOUT_STYLE
, but unfortunately it doesn't work. It's probably some kind of a bug.
Solution 1:
I have found a very quick solution, but I haven't looked at the consequences yet.
In your os_prober script for update-grub there are some lines to by-pass the timeout you set and to force displaying a boot menu if an other os has been found. You can easily disable this by setting the "quick_boot" variable to 0.
-
In
/etc/grub.d/30_os_prober
at the beginning of the file changequick_boot="1"
toquick_boot="0"
Then run
sudo update-grub
Solution 2:
Normally if you had only one OS running the option GRUB_TIMEOUT=0
would work.
If GRUB 2's os-prober
identifies additional operating systems while running the /etc/grub.d/30_os-prober
script the hidden menu timeout feature is disabled by conditional statements. This also disables the ability to use the Shift key to display the menu during boot. Users with multiple operating systems wishing to hide the menu can find script edits on various forums which will allow them to add a hidden timeout feature to the boot sequence.
Check this answer if it helps you.
Solution 3:
I tried editing 30_os_prober
, but it turned out that the name has been changed to 10_os_prober
.
Other than that the solution offered above by Motsah works perfectly for me.
I now have:
GRUB_DEFAULT="0"
GRUB_HIDDEN_TIMEOUT="1"
GRUB_HIDDEN_TIMEOUT_QUIET="true"
GRUB_TIMEOUT="0"
in my /etc/default/grub
Changing the hidden timeout to a higher setting doesn't seem to do a thing. Having 0 makes entering the menu impossible.
Copied from above, changing to 10_os_prober to make this complete:
In /etc/grub.d/10_os_prober
change
quick_boot="1"
to
quick_boot="0"
in the beginning of the file.
Run:
sudo update-grub