[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#803912: [PATCH] Follow partman-auto/disk to reuse the ESP. Closes: #803912



---
 debian/changelog |  7 +++++++
 fstab.d/efi      | 37 +++++++++++++++++++++++++++++++++----
 2 files changed, 40 insertions(+), 4 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 61b84aa..003cc3e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+partman-efi (72) UNRELEASED; urgency=medium
+
+  [ Shih-Yuan Lee (FourDollars) ]
+  * Follow partman-auto/disk to reuse the ESP. Closes: #803912
+
+ -- Shih-Yuan Lee (FourDollars) <fourdollars@gmail.com>  Tue, 03 Nov 2015 14:00:26 +0800
+
 partman-efi (71) unstable; urgency=medium
 
   [ Updated translations ]
diff --git a/fstab.d/efi b/fstab.d/efi
index 14b6696..9906f24 100755
--- a/fstab.d/efi
+++ b/fstab.d/efi
@@ -12,19 +12,48 @@ case $ARCH in
 	;;
 esac
 
-seen_efi=
+paths=
 for dev in $DEVICES/*; do
 	[ -d $dev ] || continue
 	cd $dev
 	open_dialog PARTITIONS
 	while { read_line num id size type fs path name; [ "$id" ]; }; do
-		[ -z "$seen_efi" ] || continue
 		[ $fs != free ] || continue
 		[ -f "$id/method" ] || continue
 		method=$(cat $id/method)
 		[ "$method" = efi ] || continue
-		echo "$path" /boot/efi vfat umask=0077 0 1
-		seen_efi=1
+		if [ -z "$paths" ]; then
+			paths="$path"
+		else
+			paths="$paths $path"
+		fi
 	done
 	close_dialog
 done
+
+if [ -z "$paths" ]; then
+	exit 0
+fi
+
+# Use any autopartition disk that has been set
+if db_get partman-auto/disk && [ "$RET" ]; then
+	disks="$RET"
+	seen_efi=
+	for disk in $disks; do
+		for path in $paths; do
+			case "$path" in
+				$disk*)
+					echo "$path" /boot/efi vfat umask=0077 0 1
+					seen_efi=1
+					break
+					;;
+			esac
+		done
+		[ -z "$seen_efi" ] || break
+	done
+else
+	for path in $paths; do
+		echo "$path" /boot/efi vfat umask=0077 0 1
+		break
+	done
+fi
-- 
1.9.1


Reply to: