32

I have Ubuntu and Windows 7 installed and dual booting via Grub2.

99/100 times I will boot into Ubuntu.

I want to speed up my time for booting into Ubuntu and really the Grub2 prompt is the part that adds the most time.

So, I want to disable the prompt.

I would prefer to be able to set it up so I can hold shift or similar at boot if I wish to show it.

But I don't mind editing a config file or similar in Ubuntu to show it again if need be.

So how can I do this?


My /etc/default/grub file:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

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=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
0

1 Answer 1

48

Edit /etc/default/grub to contain

GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT=0

Leave other settings alone. If you want to allow 1 second to press Shift (some computers leave you very little time between the keyboard initialization and the OS boot), make this

GRUB_HIDDEN_TIMEOUT=1
GRUB_HIDDEN_TIMEOUT_QUIET=false
GRUB_TIMEOUT=0

or if you prefer to see the menu for 1 second:

GRUB_HIDDEN_TIMEOUT=
GRUB_TIMEOUT=1

If you almost always boot into Linux, you may prefer to skip the boot menu altogether (first option in this answer, and don't bother with the Shift key), and instead, when you want to boot Windows, boot Linux and run the following command to say that the next reboot (and only the next reboot) will default to Windows:

grub-reboot Windows

You will need to change /etc/default/grub:

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=

Run grub-set-default 0 to ensure you boot into Ubuntu by default.

See Grub2 Setup in the Ubuntu community documentation for more information.

When you're done, run sudo update-grub to save your changes.

15
  • On ubuntu-server on VirtualBox, the only downside to taking these steps was that I now had to login every time I booted the server, where prior to making this change I was able to skip straight to a prompt (after waiting for grub). All in all, I lost time rather than gained it on boot. I assume making this change overwrites something the VirtualBox or default ubuntu-server install provide. Mar 20, 2014 at 8:07
  • @ChrisMoschini This change has nothing to do with any form of autologin. Autologin is purely a Linux feature, unrelated to VirtualBox or Ubuntu. (And why would you have dual boot in a VM?) Mar 20, 2014 at 10:46
  • 1
    @Gilles Where would you run that from, if the system doesn't boot?
    – Clément
    Jan 1, 2016 at 17:32
  • 3
    This has no effect on my Ubuntu 20.04. Is this answer still current? Jul 22, 2020 at 21:54
  • 3
    @TorstenBronger Since 19.10, it appears that you need GRUB_TIMEOUT_STYLE=hidden instead of GRUB_HIDDEN_TIMEOUT=0. I think the rest of the answer still applies. But I don't have a recent version around to check at the moment. Jul 22, 2020 at 22:55

Not the answer you're looking for? Browse other questions tagged or ask your own question.