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 <noreply@anthropic.com>