You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.8 KiB
78 lines
2.8 KiB
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
|
From: Colin Watson <cjwatson@ubuntu.com> |
|
Date: Thu, 10 Apr 2014 16:54:33 +0100 |
|
Subject: [PATCH] Tolerate devices with no filesystem UUID returned by |
|
os-prober |
|
|
|
* util/grub.d/30_os-prober.in: Tolerate devices with no filesystem |
|
UUID. Other parts of grub-mkconfig tolerate these, they were |
|
previously allowed here up to commit |
|
55e706c918922def17f5012c23cfe88c4c645208, and they can arise in |
|
practice when the system has active LVM snapshots. |
|
Fixes Ubuntu bug #1287436. |
|
--- |
|
ChangeLog | 9 +++++++++ |
|
util/grub.d/30_os-prober.in | 23 +++++++++++++---------- |
|
2 files changed, 22 insertions(+), 10 deletions(-) |
|
|
|
diff --git a/ChangeLog b/ChangeLog |
|
index 7f0c57dc0ae..35564681a4d 100644 |
|
--- a/ChangeLog |
|
+++ b/ChangeLog |
|
@@ -1,3 +1,12 @@ |
|
+2014-04-10 Colin Watson <cjwatson@ubuntu.com> |
|
+ |
|
+ * util/grub.d/30_os-prober.in: Tolerate devices with no filesystem |
|
+ UUID. Other parts of grub-mkconfig tolerate these, they were |
|
+ previously allowed here up to commit |
|
+ 55e706c918922def17f5012c23cfe88c4c645208, and they can arise in |
|
+ practice when the system has active LVM snapshots. |
|
+ Fixes Ubuntu bug #1287436. |
|
+ |
|
2014-04-10 Colin Watson <cjwatson@ubuntu.com> |
|
|
|
* grub-core/disk/lvm.c (grub_lvm_detect): Search for |
|
diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in |
|
index 7cf8487d63a..6f38c82a554 100644 |
|
--- a/util/grub.d/30_os-prober.in |
|
+++ b/util/grub.d/30_os-prober.in |
|
@@ -112,16 +112,17 @@ for OS in ${OSPROBED} ; do |
|
LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`" |
|
LABEL="`echo ${OS} | cut -d ':' -f 3 | tr '^' ' '`" |
|
BOOT="`echo ${OS} | cut -d ':' -f 4`" |
|
- UUID="`${grub_probe} --target=fs_uuid --device ${DEVICE%@*}`" |
|
- EXPUUID="$UUID" |
|
+ if UUID="`${grub_probe} --target=fs_uuid --device ${DEVICE%@*}`"; then |
|
+ EXPUUID="$UUID" |
|
|
|
- if [ x"${DEVICE#*@}" != x ] ; then |
|
+ if [ x"${DEVICE#*@}" != x ] ; then |
|
EXPUUID="${EXPUUID}@${DEVICE#*@}" |
|
- fi |
|
+ fi |
|
|
|
- if [ "x${GRUB_OS_PROBER_SKIP_LIST}" != "x" ] && [ "x`echo ${GRUB_OS_PROBER_SKIP_LIST} | grep -i -e '\b'${EXPUUID}'\b'`" != "x" ] ; then |
|
- echo "Skipped ${LONGNAME} on ${DEVICE} by user request." >&2 |
|
- continue |
|
+ if [ "x${GRUB_OS_PROBER_SKIP_LIST}" != "x" ] && [ "x`echo ${GRUB_OS_PROBER_SKIP_LIST} | grep -i -e '\b'${EXPUUID}'\b'`" != "x" ] ; then |
|
+ echo "Skipped ${LONGNAME} on ${DEVICE} by user request." >&2 |
|
+ continue |
|
+ fi |
|
fi |
|
|
|
BTRFS="`echo ${OS} | cut -d ':' -f 5`" |
|
@@ -277,9 +278,11 @@ EOF |
|
echo "$title_correction_code" |
|
;; |
|
macosx) |
|
- OSXUUID="${UUID}" |
|
- osx_entry xnu_kernel 32 |
|
- osx_entry xnu_kernel64 64 |
|
+ if [ "${UUID}" ]; then |
|
+ OSXUUID="${UUID}" |
|
+ osx_entry xnu_kernel 32 |
|
+ osx_entry xnu_kernel64 64 |
|
+ fi |
|
;; |
|
hurd) |
|
onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
|
|
|