Ubuntu – hide grub on computer start

bootdual-bootgrub2

I tried all the methods that comes in google search for "hide the grub menu on computer start", but still no luck, I guess things work differently on Ubuntu 15.04 ?

this is my grub

 # 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=0
 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
 GRUB_CMDLINE_LINUX_DEFAULT="libahci.ignore_sss=1 vesafb.invalid=1 quite nopat drm.debug=0xe"
 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"
 GRUB_GFXPAYLOAD_LINUX=text

grub.cfg file:

 #
 # 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="0"
 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 xfs
 set root='hd0,gpt2'
 if [ x$feature_platform_search_hint = xy ]; then
 search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 3b12612a-44e7-448e-b6a1-692930065384
 else
 search --no-floppy --fs-uuid --set=root 3b12612a-44e7-448e-b6a1-692930065384
 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=-1
 else
 if [ x$feature_timeout_style = xy ] ; then
 set timeout_style=hidden
 set timeout=0
 # Fallback hidden-timeout code in case the timeout_style feature is
 # unavailable.
 elif sleep --interruptible 0 ; 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
 if background_color 44,0,30,0; then
 clear
 fi
 ### 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=7
 else
 set vt_handoff=
 fi
 }
 set linux_gfx_mode=text
 export linux_gfx_mode
 menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-3b12612a-44e7-448e-b6a1-692930065384' {
 recordfail
 gfxmode $linux_gfx_mode
 insmod gzio
 if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
 insmod part_gpt
 insmod xfs
 set root='hd0,gpt2'
 if [ x$feature_platform_search_hint = xy ]; then
 search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 3b12612a-44e7-448e-b6a1-692930065384
 else
 search --no-floppy --fs-uuid --set=root 3b12612a-44e7-448e-b6a1-692930065384
 fi
 linux /boot/vmlinuz-3.19.0-15-generic root=UUID=3b12612a-44e7-448e-b6a1-692930065384 ro nopat plymouth:debug=1 vesafb.invalid=1 quite=1 libahci.ignore_sss=1
 initrd /boot/initrd.img-3.19.0-15-generic
 }
 submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-3b12612a-44e7-448e-b6a1-692930065384' {
 menuentry 'Ubuntu, with Linux 3.19.0-15-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.19.0-15-generic-advanced-3b12612a-44e7-448e-b6a1-692930065384' {
 recordfail
 gfxmode $linux_gfx_mode
 insmod gzio
 if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
 insmod part_gpt
 insmod xfs
 set root='hd0,gpt2'
 if [ x$feature_platform_search_hint = xy ]; then
 search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 3b12612a-44e7-448e-b6a1-692930065384
 else
 search --no-floppy --fs-uuid --set=root 3b12612a-44e7-448e-b6a1-692930065384
 fi
 echo 'Loading Linux 3.19.0-15-generic ...'
 linux /boot/vmlinuz-3.19.0-15-generic root=UUID=3b12612a-44e7-448e-b6a1-692930065384 ro nopat plymouth:debug=1 vesafb.invalid=1 quite=1 libahci.ignore_sss=1
 echo 'Loading initial ramdisk ...'
 initrd /boot/initrd.img-3.19.0-15-generic
 }
 menuentry 'Ubuntu, with Linux 3.19.0-15-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.19.0-15-generic-init-upstart-3b12612a-44e7-448e-b6a1-692930065384' {
 recordfail
 gfxmode $linux_gfx_mode
 insmod gzio
 if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
 insmod part_gpt
 insmod xfs
 set root='hd0,gpt2'
 if [ x$feature_platform_search_hint = xy ]; then
 search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 3b12612a-44e7-448e-b6a1-692930065384
 else
 search --no-floppy --fs-uuid --set=root 3b12612a-44e7-448e-b6a1-692930065384
 fi
 echo 'Loading Linux 3.19.0-15-generic ...'
 linux /boot/vmlinuz-3.19.0-15-generic root=UUID=3b12612a-44e7-448e-b6a1-692930065384 ro nopat plymouth:debug=1 vesafb.invalid=1 quite=1 libahci.ignore_sss=1 init=/sbin/upstart
 echo 'Loading initial ramdisk ...'
 initrd /boot/initrd.img-3.19.0-15-generic
 }
 menuentry 'Ubuntu, with Linux 3.19.0-15-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.19.0-15-generic-recovery-3b12612a-44e7-448e-b6a1-692930065384' {
 recordfail
 insmod gzio
 if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
 insmod part_gpt
 insmod xfs
 set root='hd0,gpt2'
 if [ x$feature_platform_search_hint = xy ]; then
 search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 3b12612a-44e7-448e-b6a1-692930065384
 else
 search --no-floppy --fs-uuid --set=root 3b12612a-44e7-448e-b6a1-692930065384
 fi
 echo 'Loading Linux 3.19.0-15-generic ...'
 linux /boot/vmlinuz-3.19.0-15-generic root=UUID=3b12612a-44e7-448e-b6a1-692930065384 ro recovery nomodeset
 echo 'Loading initial ramdisk ...'
 initrd /boot/initrd.img-3.19.0-15-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/25_custom ###

 menuentry "Windows UEFI bootmgfw.efi" {
 search --fs-uuid --no-floppy --set=root 8D03-9A18
 chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
 }

 menuentry "EFI/ubuntu/MokManager.efi" {
 search --fs-uuid --no-floppy --set=root 8D03-9A18
 chainloader (${root})/EFI/ubuntu/MokManager.efi
 }
 ### END /etc/grub.d/25_custom ###

 ### BEGIN /etc/grub.d/30_os-prober ###
 menuentry 'Windows Boot Manager (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-efi-8D03-9A18' {
 insmod part_gpt
 insmod fat
 set root='hd0,gpt1'
 if [ x$feature_platform_search_hint = xy ]; then
 search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 8D03-9A18
 else
 search --no-floppy --fs-uuid --set=root 8D03-9A18
 fi
 chainloader /EFI/Microsoft/Boot/bootmgfw.efi
 }
 menuentry 'Antergos Linux (2015.04-ISO-Rolling) (on /dev/sda7)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-b61cdeef-aa4b-464e-a0ec-fcc2417926f4' {
 insmod part_gpt
 insmod xfs
 set root='hd0,gpt7'
 if [ x$feature_platform_search_hint = xy ]; then
 search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt7 --hint-efi=hd0,gpt7 --hint-baremetal=ahci0,gpt7 b61cdeef-aa4b-464e-a0ec-fcc2417926f4
 else
 search --no-floppy --fs-uuid --set=root b61cdeef-aa4b-464e-a0ec-fcc2417926f4
 fi
 linux /boot/vmlinuz-linux root=UUID=b61cdeef-aa4b-464e-a0ec-fcc2417926f4 rw resume=UUID=f41d0df1-3da5-443c-9346-d66e03164c6a quiet
 initrd /boot/initramfs-linux.img
 }
 submenu 'Advanced options for Antergos Linux (2015.04-ISO-Rolling) (on /dev/sda7)' $menuentry_id_option 'osprober-gnulinux-advanced-b61cdeef-aa4b-464e-a0ec-fcc2417926f4' {
 menuentry 'Antergos Linux (on /dev/sda7)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-linux--b61cdeef-aa4b-464e-a0ec-fcc2417926f4' {
 insmod part_gpt
 insmod xfs
 set root='hd0,gpt7'
 if [ x$feature_platform_search_hint = xy ]; then
 search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt7 --hint-efi=hd0,gpt7 --hint-baremetal=ahci0,gpt7 b61cdeef-aa4b-464e-a0ec-fcc2417926f4
 else
 search --no-floppy --fs-uuid --set=root b61cdeef-aa4b-464e-a0ec-fcc2417926f4
 fi
 linux /boot/vmlinuz-linux root=UUID=b61cdeef-aa4b-464e-a0ec-fcc2417926f4 rw resume=UUID=f41d0df1-3da5-443c-9346-d66e03164c6a quiet
 initrd /boot/initramfs-linux.img
 }
 menuentry 'Antergos Linux - Fallback (on /dev/sda7)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-linux--b61cdeef-aa4b-464e-a0ec-fcc2417926f4' {
 insmod part_gpt
 insmod xfs
 set root='hd0,gpt7'
 if [ x$feature_platform_search_hint = xy ]; then
 search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt7 --hint-efi=hd0,gpt7 --hint-baremetal=ahci0,gpt7 b61cdeef-aa4b-464e-a0ec-fcc2417926f4
 else
 search --no-floppy --fs-uuid --set=root b61cdeef-aa4b-464e-a0ec-fcc2417926f4
 fi
 linux /boot/vmlinuz-linux root=UUID=b61cdeef-aa4b-464e-a0ec-fcc2417926f4 rw resume=UUID=f41d0df1-3da5-443c-9346-d66e03164c6a quiet
 initrd /boot/initramfs-linux-fallback.img
 }
 menuentry 'Antergos Linux (on /dev/sda7)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-linux--b61cdeef-aa4b-464e-a0ec-fcc2417926f4' {
 insmod part_gpt
 insmod xfs
 set root='hd0,gpt7'
 if [ x$feature_platform_search_hint = xy ]; then
 search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt7 --hint-efi=hd0,gpt7 --hint-baremetal=ahci0,gpt7 b61cdeef-aa4b-464e-a0ec-fcc2417926f4
 else
 search --no-floppy --fs-uuid --set=root b61cdeef-aa4b-464e-a0ec-fcc2417926f4
 fi
 linux /boot/vmlinuz-linux root=UUID=b61cdeef-aa4b-464e-a0ec-fcc2417926f4 rw resume=UUID=f41d0df1-3da5-443c-9346-d66e03164c6a quiet
 initrd /boot/initramfs-linux-fallback.img
 }
 }

 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 ###

what to do on ubuntu 15.04 to boot straight away without showing boot menu?

few more details: I did ran sudo update-grub after making changes to grub file. My BIOS is UEFI

UPDATE: I triple boot Ubuntu (default, since I use it 90% of time), arch linux, windows( for games occasionally). so I select Ubuntu most of the time i want to boot directly to it, but occasionally if i want to boot to other OS, i would like to "press shift key and see the grub and select the desired OS", thats why I want to hide grub

UPDATE2: when i set grub timeout to 0 it becomes 10sec on boot, dont know why…

Best Answer

In /etc/default/grub set:

GRUB_HIDDEN_TIMEOUT="1"
GRUB_HIDDEN_TIMEOUT_QUIET="true"
#GRUB_TIMEOUT="1"

That will allow you to have a very short time interval of 1 second to still press Shift while booting to get the advanced menu, while not running into the 10-second problem in

if [ "${timeout}" = 0 ]; then
set timeout=10
fi

in /boot/grub/grub.cfg.

(Meaning, "0" is allowed, but just gets set to "10" in a deeper level of the config to protect users from themselves)