How to make a dual-boot system (Linux/Windows) boot faster by altering the GRUB boot menu

in #linux7 years ago

As I have been using Linux for many years, starting with Red Hat some 20 years ago, I think the distros have matured so much the last couple of years, that there is really not much use for me to have Windows installed any more. The only reason I keep a Windows partition is because of a few compatibility issues - mainly MS Word documents are unfortunately not read correctly by Libre Office. I am leaning LaTeX at the moment by the way, since this type setting program can be used to created such aesthetically nice layouts. But having to collaborate with colleagues using Windows and MS Word, I need to keep Windows. Also, programs like Photoshop and Lightroom are not written for Linux yet. But thats lesser of a problem since there are open source photo editing programs that are just as nice.
So, since I use Linux 99% of the time, the GRUB boot menu is just slowing down the boot time, and I can hit F12 on boot to enter the BIOS boot menu instead, which works just fine.
Here is some tricks to alter the GRUB boot menu to reduce display time, or to skip it all together;
Use your favorite text editor (gedit, nedit, Vim) for this. In the example below i use gedit;

gedit /etc/default/grub

If it not already in there, add the following lines (and leave everything else as is);

GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT=0

This will display the GRUB menu for 0 seconds, effectively skipping over it. If you want to allow for 1 second to be able to press shift and enter the menu, edit to this;

GRUB_HIDDEN_TIMEOUT=1
GRUB_HIDDEN_TIMEOUT_QUIET=false
GRUB_TIMEOUT=0

If you want to see the menu for 1 second, edit accordingly;

GRUB_HIDDEN_TIMEOUT=
GRUB_TIMEOUT=1

Alternative to hitting the BIOS boot menu when re-booting into windows, you can also tell GRUB to enter windows on next reboot (and only next reboot), by editing the file to this;

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=

then in a console run this;

grub-set-default 0

When you are in Linux and want to re-boot to Windows you can now enter (in a console);

grub-reboot Windows

Important!
When done editing, run from console:

update-grub

That's it. As I almost always use Linux I use the first option. Has been working nicely for years ...

Cheers