Change Grub Default Boot Entry on Linux Mint

I’m dual booting Windows and Linux Mint on my laptop. The grub default is to boot into Linux Mint, however many people will probably want to either boot the last boot entry saved, or boot into Windows instead. My preference is for grub to select by default and boot into whatever boot entry was selected last. This makes it easy if I want to just hit reboot and know that I’m going to load into the last used operating system.

Boot into last booted Operating System:

You will need to change/add the following two lines in the grub config:

/etc/default/grub.cfg

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

For me on Linux Mint 19 the GRUB_SAVEDEFAULT definition was missing so I needed to add it in there.

And then update the grub boot config by:

update-grub

 

Boot into specific Grub entry:

/etc/default/grub.cfg

GRUB_DEFAULT=saved

Then you will need to:

# Tip: Grub boot entries begin with 0, so if you want to select the third boot option which was Windows in my case then enter 2

grub-set-default <Enter here the boot entry you want to preselect>

# Example:

grub-set-default 2
update-grub

Here are the contents of my entire grub.cfg:
# 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=saved
GRUB_SAVEDEFAULT=true
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=5
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"

/boot/grub/grub.cfg

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="${saved_entry}"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}
function recordfail {
  set recordfail=1
  if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}
function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root  5768e3fd-cf47-48fc-a631-6027001dbf01
else
  search --no-floppy --fs-uuid --set=root 5768e3fd-cf47-48fc-a631-6027001dbf01
fi
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=en_US
  insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
  set timeout=30
else
  if [ x$feature_timeout_style = xy ] ; then
    set timeout_style=hidden
    set timeout=5
  # Fallback hidden-timeout code in case the timeout_style feature is
  # unavailable.
  elif sleep --interruptible 5 ; then
    set timeout=0
  fi
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
 set gfxpayload="${1}"
 if [ "${1}" = "keep" ]; then
  set vt_handoff=vt.handoff=1
 else
  set vt_handoff=
 fi
}
if [ "${recordfail}" != 1 ]; then
  if [ -e ${prefix}/gfxblacklist.txt ]; then
    if hwmatch ${prefix}/gfxblacklist.txt 3; then
      if [ ${match} = 0 ]; then
        set linux_gfx_mode=keep
      else
        set linux_gfx_mode=text
      fi
    else
      set linux_gfx_mode=text
    fi
  else
    set linux_gfx_mode=keep
  fi
else
  set linux_gfx_mode=text
fi
export linux_gfx_mode
menuentry 'Linux Mint 19.1 Cinnamon' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-5768e3fd-cf47-48fc-a631-6027001dbf01' {
 recordfail
 savedefault
 load_video
 gfxmode $linux_gfx_mode
 insmod gzio
 if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
 insmod part_gpt
 insmod ext2
 if [ x$feature_platform_search_hint = xy ]; then
   search --no-floppy --fs-uuid --set=root  5768e3fd-cf47-48fc-a631-6027001dbf01
 else
   search --no-floppy --fs-uuid --set=root 5768e3fd-cf47-48fc-a631-6027001dbf01
 fi
        linux	/boot/vmlinuz-4.15.0-47-generic root=UUID=5768e3fd-cf47-48fc-a631-6027001dbf01 ro  quiet splash $vt_handoff
 initrd	/boot/initrd.img-4.15.0-47-generic
}
submenu 'Advanced options for Linux Mint 19.1 Cinnamon' $menuentry_id_option 'gnulinux-advanced-5768e3fd-cf47-48fc-a631-6027001dbf01' {
 menuentry 'Linux Mint 19.1 Cinnamon, with Linux 4.15.0-47-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-47-generic-advanced-5768e3fd-cf47-48fc-a631-6027001dbf01' {
  recordfail
 savedefault
  load_video
  gfxmode $linux_gfx_mode
  insmod gzio
  if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
  insmod part_gpt
  insmod ext2
  if [ x$feature_platform_search_hint = xy ]; then
    search --no-floppy --fs-uuid --set=root  5768e3fd-cf47-48fc-a631-6027001dbf01
  else
    search --no-floppy --fs-uuid --set=root 5768e3fd-cf47-48fc-a631-6027001dbf01
  fi
  echo	'Loading Linux 4.15.0-47-generic ...'
         linux	/boot/vmlinuz-4.15.0-47-generic root=UUID=5768e3fd-cf47-48fc-a631-6027001dbf01 ro  quiet splash $vt_handoff
  echo	'Loading initial ramdisk ...'
  initrd	/boot/initrd.img-4.15.0-47-generic
 }
 menuentry 'Linux Mint 19.1 Cinnamon, with Linux 4.15.0-47-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-47-generic-recovery-5768e3fd-cf47-48fc-a631-6027001dbf01' {
  recordfail
  load_video
  insmod gzio
  if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
  insmod part_gpt
  insmod ext2
  if [ x$feature_platform_search_hint = xy ]; then
    search --no-floppy --fs-uuid --set=root  5768e3fd-cf47-48fc-a631-6027001dbf01
  else
    search --no-floppy --fs-uuid --set=root 5768e3fd-cf47-48fc-a631-6027001dbf01
  fi
  echo	'Loading Linux 4.15.0-47-generic ...'
         linux	/boot/vmlinuz-4.15.0-47-generic root=UUID=5768e3fd-cf47-48fc-a631-6027001dbf01 ro recovery nomodeset 
  echo	'Loading initial ramdisk ...'
  initrd	/boot/initrd.img-4.15.0-47-generic
 }
 menuentry 'Linux Mint 19.1 Cinnamon, with Linux 4.15.0-20-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-20-generic-advanced-5768e3fd-cf47-48fc-a631-6027001dbf01' {
  recordfail
 savedefault
  load_video
  gfxmode $linux_gfx_mode
  insmod gzio
  if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
  insmod part_gpt
  insmod ext2
  if [ x$feature_platform_search_hint = xy ]; then
    search --no-floppy --fs-uuid --set=root  5768e3fd-cf47-48fc-a631-6027001dbf01
  else
    search --no-floppy --fs-uuid --set=root 5768e3fd-cf47-48fc-a631-6027001dbf01
  fi
  echo	'Loading Linux 4.15.0-20-generic ...'
         linux	/boot/vmlinuz-4.15.0-20-generic root=UUID=5768e3fd-cf47-48fc-a631-6027001dbf01 ro  quiet splash $vt_handoff
  echo	'Loading initial ramdisk ...'
  initrd	/boot/initrd.img-4.15.0-20-generic
 }
 menuentry 'Linux Mint 19.1 Cinnamon, with Linux 4.15.0-20-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-20-generic-recovery-5768e3fd-cf47-48fc-a631-6027001dbf01' {
  recordfail
  load_video
  insmod gzio
  if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
  insmod part_gpt
  insmod ext2
  if [ x$feature_platform_search_hint = xy ]; then
    search --no-floppy --fs-uuid --set=root  5768e3fd-cf47-48fc-a631-6027001dbf01
  else
    search --no-floppy --fs-uuid --set=root 5768e3fd-cf47-48fc-a631-6027001dbf01
  fi
  echo	'Loading Linux 4.15.0-20-generic ...'
         linux	/boot/vmlinuz-4.15.0-20-generic root=UUID=5768e3fd-cf47-48fc-a631-6027001dbf01 ro recovery nomodeset 
  echo	'Loading initial ramdisk ...'
  initrd	/boot/initrd.img-4.15.0-20-generic
 }
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###

### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (on /dev/nvme0n1p2)' --class windows --class os $menuentry_id_option 'osprober-efi-361F-370E' {
 savedefault
 insmod part_gpt
 insmod fat
 if [ x$feature_platform_search_hint = xy ]; then
   search --no-floppy --fs-uuid --set=root  361F-370E
 else
   search --no-floppy --fs-uuid --set=root 361F-370E
 fi
 chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
set timeout_style=menu
if [ "${timeout}" = 0 ]; then
  set timeout=10
fi
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
menuentry 'System setup' $menuentry_id_option 'uefi-firmware' {
 fwsetup
}
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

 

Share
Disqus Comments Loading...

Recent Posts

FreeNAS Error Creating Pool

command '('gpart', 'create', '-s', 'gpt', '/dev/da8')' returned non-zero exit status 1. If you get this error while trying to create… Read More

June 7, 2019 3:44 pm 15:44

How to Reset Secure Channel On Active Directory Domain Controller

When you're a little too careless about virtualizing your domain controllers, cloning, migrating, backing up and restoring, returning from vacation… Read More

April 21, 2019 8:14 am 08:14

Run Systemd Script Before System Shutdown

For no particular reason I tried to retain the FastCGI cache (NGINX) of sysinfo.io plus have it persist across system… Read More

April 20, 2019 10:14 am 10:14

Learn Systemctl Usage to Manage Systemd Service in Linux

Systemd is new service manager for Linux. It's a replacement for all previous init systems (SysV/SysVinit & Ubuntu's Upstart) and… Read More

April 20, 2019 7:55 am 07:55

Force Delete Windows Server DHCP Failover Relationship

If you've found yourself here then chances are you messed up one of your domain controllers or at least one… Read More

April 20, 2019 5:54 am 05:54

Determine Your Upstream DNS Resolver

The following one-liner Bash will output your upstream DNS resolver. You will need to install the whois package for this… Read More

April 7, 2019 11:00 am 11:00