Copy archiso initcpio hooks directly into airootfs at build time

The hook package install inside the pacstrap chroot may silently skip
the initcpio install step under QEMU emulation, leaving the archiso hook
absent from the initrd (confirmed: no 'running late hook [archiso]' in
boot output despite UUID match on device).

Explicitly copy /usr/lib/initcpio/hooks/archiso and install/archiso from
the build host into the airootfs before mkarchiso runs mkinitcpio, so
the hook is present regardless of how the chroot package install behaves.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
nmemmertandClaude Sonnet 4.6 committed 2026-08-31 10:52:05 -04:00
1 parent 525bb49787
commit ebb61beaac
1 file changed
+9
+9
View File
@@ -38,6 +38,15 @@ COPY . /build/orionos
# Bootstrap boot loader configs from the installed archiso releng profile. # Bootstrap boot loader configs from the installed archiso releng profile.
# Copy only the .c32 binary modules — our repo provides syslinux.cfg. # Copy only the .c32 binary modules — our repo provides syslinux.cfg.
# efiboot/ is needed for systemd-boot UEFI; fall back to a minimal loader.conf. # efiboot/ is needed for systemd-boot UEFI; fall back to a minimal loader.conf.
# Copy archiso initcpio hook files directly into airootfs so mkinitcpio
# finds them even if the package-based install path differs at build time.
RUN mkdir -p /build/orionos/iso/profile/airootfs/usr/lib/initcpio/hooks \
/build/orionos/iso/profile/airootfs/usr/lib/initcpio/install && \
cp /usr/lib/initcpio/hooks/archiso \
/build/orionos/iso/profile/airootfs/usr/lib/initcpio/hooks/archiso && \
cp /usr/lib/initcpio/install/archiso \
/build/orionos/iso/profile/airootfs/usr/lib/initcpio/install/archiso
RUN mkdir -p /build/orionos/iso/profile/syslinux && \ RUN mkdir -p /build/orionos/iso/profile/syslinux && \
cp /usr/share/archiso/configs/releng/syslinux/*.c32 \ cp /usr/share/archiso/configs/releng/syslinux/*.c32 \
/build/orionos/iso/profile/syslinux/ 2>/dev/null || true && \ /build/orionos/iso/profile/syslinux/ 2>/dev/null || true && \