blob: 9c55c1d24a996a4913b5327b627ee4a4e941c37f (
plain)
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 989f83d664999deeb28d03a847e8f00a28639d7d 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: 2021-09-24
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 e62cfc22b..b6a1d7dec 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 37d5f05b5..e2ec80eb9 100644
--- a/util/grub.d/30_os-prober.in
+++ b/util/grub.d/30_os-prober.in
@@ -222,6 +222,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
@@ -233,10 +238,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
-
# The GRUB_DISABLE_SUBMENU option used to be different than others since it was
# mentioned in the documentation that has to be set to 'y' instead of 'true' to
# enable it. This caused a lot of confusion to users that set the option to 'y',
|