How do I set the grub timeout and the grub default boot entry?
In Ubuntu 12.04 (or above), how do I set the GRUB time and the default OS (that I see at boot time) as I'm dual-booting Windows (7/8) and Ubuntu (12.04 or above)?
- Press Alt + F2, type
gksudo gedit /etc/default/grub
press Enter and enter your password. -
You will see the following contents:
GRUB_DEFAULT=0 GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=10 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX=""
You can change the default from 0 to any number, corresponding to the entry in the Grub bootup menu (first entry is 0, second is 1, etc.)
- You can change the "hidden timeout" (no menu); and also display the countdown (
GRUB_HIDDEN_TIMEOUT_QUIET=false
) - You can force the grub menu to show by commenting out the two
GRUB_HIDDEN
lines with a#
at the beginning of the line And set the grub menu timeout (default is 10 seconds)
Make your changes, press Ctrl + S to save and Ctrl + Q to exit
-
Important: Open a terminal with Ctrl + Alt + T and type
sudo update-grub
to apply the changes you just made - Reboot and you should see your timeout/default entry change
Linked Question:
- How do I set Windows to boot as the default in the boot loader?
If you read the file that you are editing in the example above (/etc/default/grub), you will notice that the very first couple lines instruct you to run update-grub
after making changes in order to update the actual file that grub reads to "get its instructions" (/boot/grub/grub.cfg). Note that you must actually run it with the sudo
command first as you need root privileges to actually run the command (which is why the poster above said to type sudo update-grub
). This will cause the changes you made to be written to /boot/grub/grub.cfg. The very next couple lines tell you that you can read the full documentation of options in that file (again, /etc/default/grub) by typing info -f grub -n 'Simple configuration'
.
That said, set GRUB_TIMEOUT to -1 if you want to set the "grub time" to be indefinite. In other words, it will never automatically boot. You will have to make a selection.
Finally, to answer your question, here are the descriptions of those "grub hidden lines" straight from the above-referenced documentation:
GRUB_HIDDEN_TIMEOUT
Wait this many seconds for a key to be pressed before displaying
the menu. If no key is pressed during that time, boot
immediately. Unset by default.
GRUB_HIDDEN_TIMEOUT_QUIET
In conjunction with `GRUB_HIDDEN_TIMEOUT', set this to `true' to
suppress the verbose countdown while waiting for a key to be
pressed before displaying the menu. Unset by default.
I hope this helps!
You can use an application called Grub Customizer. It is much more easier.
You can install it by:
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer
If you are getting errors adding ppa, it is possible that grub-customizer is already included. Try installing without adding the ppa.
There is an How-To Geek article about it, How to Configure the Linux GRUB 2 Boot Menu the Easy Way. Also, there is a solved thread on the Ubuntu Forums, Change boot order in GRUB 2 that mentions this tool.
Here are some screen shots of this software: