Grub checks GRUB_OS_PROBER_SKIP_LIST
against EXPUUID
not UUID
, so the
proper format for GRUB_OS_PROBER_SKIP_LIST
is UUID@/dev/????
for example:
GRUB_OS_PROBER_SKIP_LIST="A3F5-6DF3@/dev/sda1"
This is a bug. The problem is in the file /etc/grub.d/30_os-prober
.
As presented here, a workaround is to add the files /etc/grub.d/25_pre-os-prober
and /etc/grub.d/35_post-os-prober
.
The two files must also be marked as executable to work.
After adding this two files, your modifications to the variable GRUB_TIMEOUT
in /etc/default/grub
should work as expected.
If you are not dual booting, another workaround is to uninstall os-prober
.
25_pre-os-prober:
#! /bin/sh
# file: /etc/grub.d/25_pre-os-prober
set -e
# Save the $timeout and $timeout_style values set by /etc/grub.d/00_header
# before /etc/grub.d/30_os-prober messes them up.
cat << EOF
set timeout_bak=\${timeout}
set timeout_style_bak=\${timeout_style}
EOF
35_post-os-prober
#! /bin/sh
# file: /etc/grub.d/35_post-os-prober
set -e
# Reset $timeout and $timeout_style to their original values
# set by /etc/grub.d/00_header before /etc/grub.d/30_os-prober messed them up.
cat << EOF
set timeout=\${timeout_bak}
set timeout_style=\${timeout_style_bak}
EOF
Best Answer
Surprisingly, that file
/etc/default/grub/
doesn't seem to be provided by any package. I useddpkg -S /etc/default/grub
, but it failed. However, you can copy the content of the default file from below. This file is same for Ubuntu 12.04 and 12.10.