installer-iso: force script stage 1 — systemd initrd has no findiso
terra booted the staged installer this time but dropped to an emergency shell: stage 1 mounted /sysroot, then timed out on /sysroot/nix/.ro-store waiting for /dev/disk/by-label/nixos-minimal-26.05-x86_64. findiso= is handled only in the scripted stage-1-init.sh, which loop-mounts the file the param points at and symlinks it to /dev/root. The systemd initrd — the default since 26.05 — has no findiso handling at all: iso-image.nix mounts /iso directly from /dev/disk/by-label/<volumeID>, a label that only exists when the ISO is the physical boot medium. Booted as kernel + initrd off the ESP with the iso as a plain file on another partition, that label never appears, so the store squashfs never mounts. The entire `install <config> localhost` path is built on findiso, so pin the installer to script stage 1. Verified: /iso device flips to /dev/root, root=LABEL=... is added to the params, the rebuilt initrd's /init is stage-1-init.sh and carries the findiso logic. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -208,6 +208,19 @@
|
||||
networking.hostName = "homelab-installer";
|
||||
environment.systemPackages = [ pkgs.git ];
|
||||
|
||||
# findiso= is a SCRIPT-stage-1 feature (stage-1-init.sh) only. The
|
||||
# systemd initrd — the default since 26.05 — has no findiso path
|
||||
# at all: it mounts /iso straight from
|
||||
# /dev/disk/by-label/<volumeID> (iso-image.nix), which only exists
|
||||
# when the ISO is the physical boot medium. Booted as a kernel +
|
||||
# initrd off the ESP with the iso as a plain file elsewhere, that
|
||||
# label never appears and stage 1 times out into an emergency
|
||||
# shell (mounts /sysroot fine, then fails /sysroot/nix/.ro-store).
|
||||
# Script stage 1 instead loop-mounts the file findiso= points at
|
||||
# and symlinks it to /dev/root — which is the whole mechanism this
|
||||
# install path relies on. So force it off here.
|
||||
boot.initrd.systemd.enable = false;
|
||||
|
||||
# installation-cd-minimal leaves experimental-features unset, so
|
||||
# the ISO's nix.conf has no `nix-command`/`flakes` at all (unlike
|
||||
# the nixos-images kexec installer, which sets
|
||||
|
||||
Reference in New Issue
Block a user