Package: grub2 / 2.02+dfsg1-20

mkconfig_nonexistent_loopback.patch Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
From 7ef88db58a928e4abc6588b8812bce044e2af7a6 Mon Sep 17 00:00:00 2001
From: Colin Watson <cjwatson@ubuntu.com>
Date: Mon, 13 Jan 2014 12:13:08 +0000
Subject: Avoid getting confused by inaccessible loop device backing paths

Bug-Ubuntu: https://bugs.launchpad.net/bugs/938724
Forwarded: no
Last-Update: 2013-12-20

Patch-Name: mkconfig_nonexistent_loopback.patch
---
 util/grub-mkconfig_lib.in   | 2 +-
 util/grub.d/30_os-prober.in | 9 +++++----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in
index 9ee60d5fa..2c9743052 100644
--- a/util/grub-mkconfig_lib.in
+++ b/util/grub-mkconfig_lib.in
@@ -143,7 +143,7 @@ prepare_grub_to_access_device ()
         *)
           loop_device="$1"
           shift
-          set -- `"${grub_probe}" --target=device "${loop_file}"` "$@"
+          set -- `"${grub_probe}" --target=device "${loop_file}"` "$@" || return 0
         ;;
       esac
     ;;
diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in
index 775ceb2e0..b7e1147c4 100644
--- a/util/grub.d/30_os-prober.in
+++ b/util/grub.d/30_os-prober.in
@@ -219,6 +219,11 @@ EOF
 	  LINITRD="${LINITRD#/boot}"
 	fi
 
+	if [ -z "${prepare_boot_cache}" ]; then
+	  prepare_boot_cache="$(prepare_grub_to_access_device ${LBOOT} | grub_add_tab)"
+	  [ "${prepare_boot_cache}" ] || continue
+	fi
+
 	onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
 	recovery_params="$(echo "${LPARAMS}" | grep 'single\|recovery')" || true
 	counter=1
@@ -230,10 +235,6 @@ EOF
 	fi
 	used_osprober_linux_ids="$used_osprober_linux_ids 'osprober-gnulinux-$LKERNEL-${recovery_params}-$counter-$boot_device_id'"
 
-	if [ -z "${prepare_boot_cache}" ]; then
-	  prepare_boot_cache="$(prepare_grub_to_access_device ${LBOOT} | grub_add_tab)"
-	fi
-
 	if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then
             cat << EOF
 menuentry '$(echo "$OS $onstr" | grub_quote)' $CLASS --class gnu-linux --class gnu --class os \$menuentry_id_option 'osprober-gnulinux-simple-$boot_device_id' {