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: