From 5de7cfec7847b4ad0a4a892088b7ad87a6618c48 Mon Sep 17 00:00:00 2001 From: nmemmert <67961292+nmemmert@users.noreply.github.com> Date: Mon, 31 Aug 2026 12:39:06 -0400 Subject: [PATCH] archiso hook: replace getarg with direct /proc/cmdline parsing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit getarg's trailing-= convention varies by mkinitcpio version and was returning empty even when archisosearchuuid was present in cmdline. Parse /proc/cmdline directly in ash — no external tools, no version sensitivity. Co-Authored-By: Claude Sonnet 4.6 --- .../airootfs/usr/lib/initcpio/hooks/archiso | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/iso/profile/airootfs/usr/lib/initcpio/hooks/archiso b/iso/profile/airootfs/usr/lib/initcpio/hooks/archiso index cf1e0f4..57dde48 100644 --- a/iso/profile/airootfs/usr/lib/initcpio/hooks/archiso +++ b/iso/profile/airootfs/usr/lib/initcpio/hooks/archiso @@ -2,15 +2,19 @@ archiso_mount_handler() { local _new_root="$1" - local _uuid _label _basedir _dev _img + local _uuid _label _basedir _dev _img _param - _uuid="$(getarg archisosearchuuid=)" - _label="$(getarg archisolabel=)" - _basedir="$(getarg archisobasedir=)" + for _param in $(cat /proc/cmdline); do + case "$_param" in + archisosearchuuid=*) _uuid="${_param#archisosearchuuid=}" ;; + archisolabel=*) _label="${_param#archisolabel=}" ;; + archisobasedir=*) _basedir="${_param#archisobasedir=}" ;; + esac + done : "${_basedir:=arch}" if [ -z "${_uuid}" ] && [ -z "${_label}" ]; then - echo "archiso: neither archisosearchuuid nor archisolabel set in kernel cmdline" + echo "archiso: neither archisosearchuuid nor archisolabel in kernel cmdline" return 1 fi