diff options
| -rwxr-xr-x | installer/build.sh | 18 | ||||
| -rwxr-xr-x | installer/configure-target-gpt-root.sh | 1 |
2 files changed, 18 insertions, 1 deletions
diff --git a/installer/build.sh b/installer/build.sh index 205f18c..dda0706 100755 --- a/installer/build.sh +++ b/installer/build.sh @@ -157,6 +157,24 @@ fi /usr/libexec/aerocore-configure-target-gpt-root \${target_root} %end +# Do not let stale Fedora boot files from an earlier installation collide with +# the bootc payload being installed. This matches the upstream Bazzite +# installer behavior; other vendor EFI directories are left untouched. +%pre-install --erroronfail --log=/tmp/aerocore-efi-cleanup.log +set -eux +efi_root= +for root in /mnt/sysroot /mnt/sysimage /var/mnt/sysroot /var/mnt/sysimage; do + if mountpoint -q \${root}/boot/efi; then + efi_root=\${root}/boot/efi + break + fi +done +if [ x\${efi_root} = x ]; then + echo No mounted EFI system partition found for cleanup >&2 + exit 1 +fi +rm -rf \${efi_root}/EFI/fedora +%end ostreecontainer --url=${INSTALL_IMAGE_PAYLOAD} --transport=containers-storage --no-signature-verification # The local containers-storage deployment is intentionally unverified because diff --git a/installer/configure-target-gpt-root.sh b/installer/configure-target-gpt-root.sh index 470821e..6c1a2d1 100755 --- a/installer/configure-target-gpt-root.sh +++ b/installer/configure-target-gpt-root.sh @@ -17,7 +17,6 @@ if [[ ! "${source_device}" =~ ^/dev/ ]]; then source_maj_min="$(findmnt -no MAJ:MIN --target "${target_root}")" source_device="$(lsblk -nrpo NAME,MAJ:MIN | awk -v wanted="${source_maj_min}" '$2 == wanted { print $1; exit }')" fi - case "${source_device}" in /dev/*[0-9]) ;; *) |
