--- 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) <fourdoll...@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