@command{grub-mkconfig} command.
@item GRUB_OS_PROBER_SKIP_LIST
-List of space-separated FS UUIDs of filesystems to be ignored from os-prober
-output. For efi chainloaders it's <UUID>@@<EFI FILE>
+List of space-separated case insensitive UUIDs of filesystems to be ignored
+from os-prober output. For EFI chainloaders it's <UUID>@@<EFI FILE>. For
+backward compatibility with previous behaviour, <UUID>@@/dev/* is also accepted
+for non-EFI chainloaders even if the device does not match, and comma and
+semicolon are also accepted as separator.
@item GRUB_DISABLE_SUBMENU
Normally, @command{grub-mkconfig} will generate top level menu entry for
OSPROBED=$(grub_move_to_front "$GRUB_TOP_LEVEL_OS_PROBER" ${OSPROBED})
fi
+case "$GRUB_OS_PROBER_SKIP_LIST" in *@/[dD][eE][vV]/*)
+ grub_warn "$(gettext_printf "GRUB_OS_PROBER_SKIP_LIST contains deprecated <UUID>@/dev/* notation. The @/dev/* suffix is ignored.")"
+esac
+
for OS in ${OSPROBED} ; do
DEVICE="`echo ${OS} | cut -d ':' -f 1`"
LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
LABEL="`echo ${OS} | cut -d ':' -f 3 | tr '^' ' '`"
BOOT="`echo ${OS} | cut -d ':' -f 4`"
- if UUID="`${grub_probe} --target=fs_uuid --device ${DEVICE%@*}`"; then
- EXPUUID="$UUID"
+ unset UUID
+ if [ -n "${GRUB_OS_PROBER_SKIP_LIST}" ] && UUID="`${grub_probe} --target=fs_uuid --device ${DEVICE%@*}`"; then
+ SPACE='[[:space:],;]' # regex matching spaces and common separators
- if [ x"${DEVICE#*@}" != x ] ; then
- EXPUUID="${EXPUUID}@${DEVICE#*@}"
+ if [ x"${DEVICE##*@*}" = x ] ; then
+ EXPUUID="$UUID@${DEVICE#*@}"
+ else
+ EXPUUID="$UUID(@/dev/.*)?"
fi
- if [ "x${GRUB_OS_PROBER_SKIP_LIST}" != "x" ] && [ "x`echo ${GRUB_OS_PROBER_SKIP_LIST} | grep -i -e '\b'${EXPUUID}'\b'`" != "x" ] ; then
+ if printf %s " ${GRUB_OS_PROBER_SKIP_LIST} " | grep -Eqie "${SPACE}${EXPUUID}${SPACE}" ; then
echo "Skipped ${LONGNAME} on ${DEVICE} by user request." >&2
continue
fi
echo "$title_correction_code"
;;
macosx)
- if [ "${UUID}" ]; then
+ if [ "${UUID=`${grub_probe} --target=fs_uuid --device ${DEVICE}`}" ]; then
OSXUUID="${UUID}"
osx_entry xnu_kernel 32
osx_entry xnu_kernel64 64