Fix ARM64 initramfs: write complete archiso mkinitcpio hooks inline

The archiso git repo doesn't ship the hooks as standalone files, and
ALARM has no archiso package. Write the hooks directly in the entrypoint
with the correct three-phase structure:

- run_earlyhook: modprobe squashfs/overlay/iso9660/loop/vfat before udev
- run_hook: parse archisolabel/archisobasedir from /proc/cmdline, set
  mount_handler="archiso_mount_handler"
- archiso_mount_handler: find ISO by label (fallback to TYPE=iso9660),
  mount it, mount squashfs at arch/$(uname -m)/airootfs.sfs, set up
  tmpfs cowspace, mount overlay to /new_root

install hook: add all required modules (squashfs, overlay, iso9660,
loop, vfat, nls_*) and binaries (blkid, losetup, sleep, uname).
Each mount step prints its progress and bails with a clear error message
on failure so boot panics are diagnosable.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
nmemmertandClaude Sonnet 4.6 committed 2026-07-27 08:40:18 -04:00
1 parent 629f16537e
commit 4cda708cc2
2 files changed
+117 -22

No files matched your search

-2
View File
@@ -65,8 +65,6 @@ RUN git clone --depth=1 https://gitlab.archlinux.org/archlinux/archiso.git /tmp/
install -Dm755 /tmp/archiso/scripts/run_archiso.sh /usr/bin/run_archiso && \
install -d /usr/share/archiso && \
cp -a /tmp/archiso/configs /usr/share/archiso/ && \
echo "=== archiso hook locations ===" && \
find /tmp/archiso -name "archiso" -not -path "*/\.git/*" | sort && \
rm -rf /tmp/archiso
# Pre-download linux-aarch64 and create a local pacman repo so mkarchiso