summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTranch <tranch.xiao@gmail.com>2026-07-24 10:59:03 +0800
committerGitHub <noreply@github.com>2026-07-24 10:59:03 +0800
commite8c8e0cbec2adf61874ce6ac3794713341fc5278 (patch)
tree687f62b59f4bef52926bb3b9c3d428bd09118c70
parent471cd249e333446dc73e91adde5d8ea36ca19796 (diff)
parent0c4d05acf5e233cd0aa8d8f42560064dde2fc3f6 (diff)
downloadAeroCore-OS-e8c8e0cbec2adf61874ce6ac3794713341fc5278.tar.gz
AeroCore-OS-e8c8e0cbec2adf61874ce6ac3794713341fc5278.zip
Merge pull request #9 from AeroCore-IO/feature/live-installer-efi
Fix live installer GRUB EFI fallback and improve file handling
-rwxr-xr-xinstaller/build.sh22
1 files changed, 19 insertions, 3 deletions
diff --git a/installer/build.sh b/installer/build.sh
index 921e628..efce782 100755
--- a/installer/build.sh
+++ b/installer/build.sh
@@ -19,6 +19,13 @@ dnf --setopt=excludepkgs= install -y \
libblockdev-lvm \
dracut-live \
livesys-scripts \
+ grub2-efi-x64 \
+ grub2-efi-x64-cdboot
+
+# Kinoite can carry the EFI packages in the RPM database without their files
+# materialized in the container filesystem. Restore the files for the ISO.
+dnf --setopt=excludepkgs= reinstall -y \
+ grub2-efi-x64 \
grub2-efi-x64-cdboot
# Apply the same AeroCore overlay to the live session where possible.
@@ -57,12 +64,21 @@ sed -i 's/^livesys_session=.*/livesys_session=kde/' /etc/sysconfig/livesys
systemctl enable livesys.service livesys-late.service
mkdir -p /boot/efi
-if compgen -G '/usr/lib/efi/*/*/EFI' >/dev/null; then
- cp -a /usr/lib/efi/*/*/EFI /boot/efi/
+efi_dir="$(find /usr/lib/efi -type d -name EFI -print -quit 2>/dev/null || true)"
+if [[ -n "${efi_dir}" ]]; then
+ cp -a "${efi_dir}" /boot/efi/
fi
# bootc-image-builder needs the Fedora live ISO fallback EFI loader.
-cp -v /boot/efi/EFI/fedora/grubx64.efi /boot/efi/EFI/BOOT/fbx64.efi
+grubx64="$(find /usr/lib/efi /boot/efi -type f \
+ -path '*/EFI/fedora/grubx64.efi' -print -quit 2>/dev/null || true)"
+if [[ -z "${grubx64}" ]]; then
+ echo "grubx64.efi was not found in the installed EFI tree" >&2
+ find /usr/lib/efi /boot/efi -type f -path '*/EFI/*' -print >&2 || true
+ exit 1
+fi
+mkdir -p /boot/efi/EFI/BOOT
+cp -v "${grubx64}" /boot/efi/EFI/BOOT/fbx64.efi
systemd-firstboot --timezone UTC
dnf clean all