Like many developers, I run Windows 10 alongside Ubuntu 20.04. I use both of them regularly, but I use Windows most of the time since I work with a couple of programs that are only available on Windows.
When I boot up my computer, the following screen is being displayed on the monitor. As you can see , Ubuntu is the default boot option. If I don’t touch the keyboard (moving the arrow keys up and down) or choose Windows, the computer will boot into Ubuntu Linux. It’s really annoying when I turn on my computer and I go to the kitchen to grab a coffee, and by the time I am back the computer has already booted into Linux.
Here is how to change that and your daily tragedy 😛
- Boot into Ubuntu (for doing this just let the computer to boot into Ubuntu, lmao ) and open the terminal by pressing alt+ctrl+t.
- Run the following command:
sudo fgrep menuentry /boot/grub/grub.cfg
. You are supposed to see an output similar to what I have (it could be slightly different in your case) :[sudo] password for peshmerge: if [ x"menuentry_id_option 'gnulinux-simple-92ea7af3-4ae5-42f3-8f43-fce35056913a' { submenu 'Advanced options for Ubuntu' menuentry_id_option 'gnulinux-5.8.0-34-generic-advanced-92ea7af3-4ae5-42f3-8f43-fce35056913a' { menuentry 'Ubuntu, with Linux 5.8.0-34-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os menuentry_id_option 'gnulinux-5.4.0-58-generic-advanced-92ea7af3-4ae5-42f3-8f43-fce35056913a' { menuentry 'Ubuntu, with Linux 5.4.0-58-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os menuentry_id_option 'osprober-efi-3A76-66A1' { menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
Select the following entry and copy it:
'Windows Boot Manager (on /dev/sda1)'
which is obviously the entry responsible for booting the computer into Windows 10. - Then, run the following command:
sudo vim /etc/default/grub
. You are supposed to see something like this:# 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_TIMEOUT_STYLE=hidden 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"
- Replace the value of
GRUB_DEFAULT
which is 0 with the entry you have copied earlier in step 2'Windows Boot Manager (on /dev/sda1)'
and save & close the file. - After that, run the following command
sudo update-grub
to update the/boot/grub/grub.cfg
file. - Finally, reboot your computer. You are supposed to see that Windows is being selected as a default OS in your GRUB menu just like what I have here
References: