Here's my GRUB config:
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
My device is a Lenovo ThinkPad X1 Yoga (4th gen) with 1TB NVME SSD, and running (currently) on Kubuntu 21.10.
How do I stop it from showing up and interrupting the boot process?
I had exactly the same problem (on Ubuntu 21.10) and was able to fix it.
If grub finds another OS on the drive (which is true in my case because I dual-boot Ubuntu and Windows but don't need grub for that), it automatically resets the timeout to 10 if it is set to 0. You can see that when you open
/boot/grub/grub.cfg
and find the following if-statement near the end of the file:As
/boot/grub/grub.cfg
states itself, it is automatically generated, so if you edit the file directly, any changes to it will be lost when updating grub in the future.To fix the issue sustainably, open
/etc/grub.d/30_os-prober
, since this is the file the if-statement stems from. You can comment out the whole if-statement or edit it toset timeout=0
.Even if you're not dual-booting, look through your
/boot/grub/grub.cfg
to find any resets of timeout. If there are any, it should also reveal which file is inserting it. Edit that file accordingly.Save the file, run
update-grub
and during the next boot, grub shouldn't show up anymore.