Tags: patch
From 0243b5265325ba141e35da0717c7d604dce99c96 Mon Sep 17 00:00:00 2001
From: Carlos Maddela <[email protected]>
Date: Sun, 8 Jul 2018 21:49:39 +1000
Subject: Fix broken GRUB_OS_PROBER_SKIP_LIST functionality.

Description: Fix broken GRUB_OS_PROBER_SKIP_LIST functionality.
 According to the documentation:
 .
  '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>
 .
 However, any UUIDs listed here will still get probed, since
 /etc/grub.d/30_os-prober incorrectly appends the device to the UUID,
 when generating the list of partitions to consider. For example,
 .
    9a03aa0b-8f97-4ad2-9ae5-d7264c44ad5a@/dev/sda2
 .
 as if it were an EFI chainloader, therefore it will never match.
 .
 Make sure that the trailing information after the '@' is only appended
 for EFI chainloaders, to correct the behaviour.
Author: Carlos Maddela <[email protected]>
Bug-Debian: https://bugs.debian.org/903266
Last-Update: 2018-07-08
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/

Patch-Name: grub_os_prober_skip_list.patch
---
 util/grub.d/30_os-prober.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in
index da5f28876..b21ff9d24 100644
--- a/util/grub.d/30_os-prober.in
+++ b/util/grub.d/30_os-prober.in
@@ -135,7 +135,7 @@ for OS in ${OSPROBED} ; do
   if UUID="`${grub_probe} --target=fs_uuid --device ${DEVICE%@*}`"; then
     EXPUUID="$UUID"
 
-    if [ x"${DEVICE#*@}" != x ] ; then
+    if [ x"${DEVICE#${DEVICE%@*}}" != x ] ; then
       EXPUUID="${EXPUUID}@${DEVICE#*@}"
     fi
 

Reply via email to