I installed Ubuntu in an empty disk in an UEFI machine, and has been booting directly without any kind of menu or timeout until last week's software update. I would like to keep booting simple, like it was before.

The relevant change I did was moving a disk with an old Linux Deepin installation from a PC that I sold to the same machine with Ubuntu. So now I have 2 disks on the same PC.

And of course at boot I now have a grub menu to select between Ubuntu and Deepin. I don't need this menu since I always use Ubuntu, the Deepin disk has its own grub and I can choose which disk to boot from the BIOS options.

How do I go back to the old boot sequence? I really don't want to disconnect my Deepin disk.

After reading this question I changed some stuff in the /etc/default/grub file, now it looks 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_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="quiet splash"
GRUB_CMDLINE_LINUX="noprompt"

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

Then ran sudo update-grub with no problems. But the grub menu and 10 seconds timeout is still present at boot.

It may be relevant to post the partitioning on the Ubuntu disk, since is not the default:

Partition - Mount point - Flags

/dev/sda1 - - bios_grub

/dev/sda2 - /boot/efi - boot,esp

/dev/sda3 - / -

/dev/sda4 - /home -

/dev/sda5 - swap -


If for any reason you just want Ubuntu, you can turn off os-prober. And if desired add your own entries to 40_custom, but then grub would appear again.

If other install not found menu only has grub and should directly boot.

Add this to /etc/default/grub:

GRUB_DISABLE_OS_PROBER=true

or turn off execute bit on os-prober:

sudo chmod a-x /etc/grub.d/30_os-prober

Then run the update grub again sudo update-grub


Normally if you had only one OS running the option GRUB_TIMEOUT=0 would work. If GRUB 2's os-prober identifies additional operating systems while running the /etc/grub.d/30_os-prober script the hidden menu timeout feature is disabled by conditional statements. This also disables the ability to use the Shift key to display the menu during boot.