mkinitcpio's autodetect missed the eMMC stack in the chroot; the installed system hung unbootable with root on mmcblk0p2. Pin sdhci_acpi/sdhci_pci/mmc_block in MODULES and regenerate during install. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
edge-host installer ISO
Bootable Arch installer image for edge-1.srv.renner.uno (the bare-metal
N100 that replaces the k8s-edge VM — see ansible/roles/edge-host).
The image is the official archiso releng profile plus:
edge-installin the live environment — partitions the NVMe (ESP + ext4 root, systemd-boot), pacstraps the base system incl. docker/python, configures DHCP via systemd-networkd, enables sshd and drops the common homelab SSH keys for root (key-only, no root password)- the extra disk tools the installer needs
Division of labour: the ISO produces an ansible-ready base system;
all service configuration (zwave-js-ui, sml2mqtt, open3e/CAN) stays in
ansible/roles/edge-host as the single source of truth. Rebuilding the
box is: boot ISO → edge-install → run the play.
Build
sudo pacman -S archiso
cd images/edge-host-iso
sudo ./build.sh # ISO lands in ./out/
The profile is assembled at build time from /usr/share/archiso/configs/releng
plus the overlay in airootfs/ — the repo carries only the delta, so
archiso updates flow in automatically.
Install
- Write the ISO to a USB stick:
cp out/edge-host-*.iso /dev/sdX - Boot the target from it (UEFI, Secure Boot off; one-time F12/setup visit if the box doesn't already boot USB first)
- Either on the console (auto-login as root) or headless —
ssh root@<dhcp-ip>works out of the box, the live env carries the homelab keys — runedge-install. It auto-detects the internal disk (NVMe, else eMMC — covers the Wyse 3040 — else first non-USB disk), shows the target and requires typing the hostname before wiping anything. Override withedge-install /dev/sdY. - Reboot, then from the workstation:
cd ansible ansible-playbook -i inventory/pve_hosts.yml plays/common.yml -l edge_host ansible-playbook -i inventory/pve_hosts.yml plays/install-edge-host.yml - Continue with the cutover checklist in
ansible/roles/edge-host/README.md.