From 337d280f2b4c3f28d2826ee70c7a0186148e1cbf Mon Sep 17 00:00:00 2001 From: Breadway Date: Sun, 14 Jun 2026 03:13:54 +0800 Subject: [PATCH] Add live-environment config so the ISO boots straight to the session MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The fixed initramfs boots into userspace, but systemd-firstboot (ConditionFirstBoot=yes, --prompt-locale --prompt-keymap-auto --prompt-timezone --prompt-root-password) then blocked the console waiting for interactive input, and root was locked (no /etc/shadow), so the live medium never reached the autologin getty + Hyprland. Ship the same base files releng uses to satisfy firstboot and unlock root for autologin: - etc/locale.conf (LANG=C.UTF-8) -> no locale prompt - etc/localtime (-> UTC) -> no timezone prompt - etc/vconsole.conf (KEYMAP=us) -> no keymap prompt - etc/hostname (bos) - etc/shadow (root unlocked, empty pw, perms 0400 via profiledef) - etc/passwd (root shell = bash; system users are appended by the systemd-sysusers pacman hook during pacstrap) The overlay is applied before pacstrap (mkarchiso _make_custom_airootfs precedes _make_packages) and these are pacman backup files, so the static passwd/shadow act as the base and package scriptlets add the rest — no clobbering of polkitd/pipewire/etc. users. Co-Authored-By: Claude Opus 4.8 --- iso/airootfs/etc/hostname | 1 + iso/airootfs/etc/locale.conf | 1 + iso/airootfs/etc/localtime | 1 + iso/airootfs/etc/passwd | 1 + iso/airootfs/etc/shadow | 1 + iso/airootfs/etc/vconsole.conf | 1 + 6 files changed, 6 insertions(+) create mode 100644 iso/airootfs/etc/hostname create mode 100644 iso/airootfs/etc/locale.conf create mode 120000 iso/airootfs/etc/localtime create mode 100644 iso/airootfs/etc/passwd create mode 100644 iso/airootfs/etc/shadow create mode 100644 iso/airootfs/etc/vconsole.conf diff --git a/iso/airootfs/etc/hostname b/iso/airootfs/etc/hostname new file mode 100644 index 0000000..8d6d854 --- /dev/null +++ b/iso/airootfs/etc/hostname @@ -0,0 +1 @@ +bos diff --git a/iso/airootfs/etc/locale.conf b/iso/airootfs/etc/locale.conf new file mode 100644 index 0000000..f9c983c --- /dev/null +++ b/iso/airootfs/etc/locale.conf @@ -0,0 +1 @@ +LANG=C.UTF-8 diff --git a/iso/airootfs/etc/localtime b/iso/airootfs/etc/localtime new file mode 120000 index 0000000..0e35b57 --- /dev/null +++ b/iso/airootfs/etc/localtime @@ -0,0 +1 @@ +/usr/share/zoneinfo/UTC \ No newline at end of file diff --git a/iso/airootfs/etc/passwd b/iso/airootfs/etc/passwd new file mode 100644 index 0000000..3f1a5e2 --- /dev/null +++ b/iso/airootfs/etc/passwd @@ -0,0 +1 @@ +root:x:0:0:root:/root:/usr/bin/bash diff --git a/iso/airootfs/etc/shadow b/iso/airootfs/etc/shadow new file mode 100644 index 0000000..7edfd69 --- /dev/null +++ b/iso/airootfs/etc/shadow @@ -0,0 +1 @@ +root::14871:::::: diff --git a/iso/airootfs/etc/vconsole.conf b/iso/airootfs/etc/vconsole.conf new file mode 100644 index 0000000..12b81a1 --- /dev/null +++ b/iso/airootfs/etc/vconsole.conf @@ -0,0 +1 @@ +KEYMAP=us