diff --git a/iso/docker/entrypoint-arm64.sh b/iso/docker/entrypoint-arm64.sh index 3f9c555..0a0a23c 100755 --- a/iso/docker/entrypoint-arm64.sh +++ b/iso/docker/entrypoint-arm64.sh @@ -146,79 +146,18 @@ rm -f "$PROFILE/packages.x86_64" # ── 3. airootfs overlay — files that land in the live system ───────── AIROOTFS="$PROFILE/airootfs" -# ── Ship our own archiso mkinitcpio hooks ──────────────────────────── -mkdir -p "$AIROOTFS/usr/lib/initcpio/hooks" -mkdir -p "$AIROOTFS/usr/lib/initcpio/install" - -cat > "$AIROOTFS/usr/lib/initcpio/hooks/archiso" <<'HOOK' -run_hook() { - export mount_handler="archiso_mount_handler" -} - -archiso_mount_handler() { - local _newroot="${1}" - local _dev _sfs _i - - [ -z "${archisobasedir}" ] && archisobasedir="arch" - if [ -z "${archisolabel}" ]; then - echo "ERROR: archisolabel not set" - return 1 - fi - - _i=0 - while [ "${_i}" -lt 30 ]; do - _dev=$(blkid --match-token LABEL="${archisolabel}" --output device 2>/dev/null | head -1) - [ -n "${_dev}" ] && break - sleep 1 - _i=$((_i + 1)) - done - if [ -z "${_dev}" ]; then - echo "ERROR: archiso: cannot find device with label '${archisolabel}'" - return 1 - fi - - mkdir -p /run/archiso/bootmnt - mount -r "${_dev}" /run/archiso/bootmnt - - # aarch64 squashfs path - _sfs="/run/archiso/bootmnt/${archisobasedir}/aarch64/airootfs.sfs" - mkdir -p /run/archiso/airootfs - mount -r -t squashfs "${_sfs}" /run/archiso/airootfs - - mkdir -p /run/archiso/cowspace - mount -t tmpfs -o "size=75%,mode=0755" tmpfs /run/archiso/cowspace - mkdir -p /run/archiso/cowspace/upper /run/archiso/cowspace/work - - mount -t overlay overlay \ - -o "lowerdir=/run/archiso/airootfs,upperdir=/run/archiso/cowspace/upper,workdir=/run/archiso/cowspace/work" \ - "${_newroot}" -} -HOOK - -cat > "$AIROOTFS/usr/lib/initcpio/install/archiso" <<'INSTALL' -build() { - add_runscript - add_binary blkid - add_binary sleep - add_module squashfs - add_module overlay - add_module iso9660 - add_module vfat - add_dir /run/archiso/bootmnt - add_dir /run/archiso/airootfs - add_dir /run/archiso/cowspace -} -help() { - echo "Mounts the archiso squashfs for live boot." -} -INSTALL +# The releng profile already ships official archiso mkinitcpio hooks at +# $PROFILE/airootfs/usr/lib/initcpio/{hooks,install}/archiso. +# Do NOT overwrite them — the official hooks handle uname -m arch detection, +# correct squashfs paths, all required modules/binaries, and mount_handler +# wiring. Our simplified custom hooks were causing "sbin/init not found". mkdir -p "$AIROOTFS/etc/mkinitcpio.conf.d" cat > "$AIROOTFS/etc/mkinitcpio.conf.d/archiso.conf" <<'MKCONF' MODULES=() BINARIES=() FILES=() -HOOKS=(base udev plymouth archiso block filesystems keyboard) +HOOKS=(base udev archiso block filesystems keyboard) MKCONF cat > "$AIROOTFS/etc/hostname" <<'EOF'