Renamed the iPXE menu entry that chain-loads this flake's own custom auto-installer image from nixos to auto-installer (label "NixOS Auto-Installer"), and set networking.hostName on netbootSystem so its generated system name (nixos-system-auto-installer-*) and staged directory (/srv/pxe/http/auto-installer) match the entry.
Added a second, genuinely vanilla NixOS minimal netboot image (netbootMinimalSystem in flake.nix — nixpkgs's own netboot-minimal.nix, none of modules/installer/common.nix's auto-installer wiring), built from source the same way and exposed as packages.x86_64-linux.pxe-minimal. Wired into the iPXE menu as nixos-minimal (item, hostname, and staged directory all matching).
Generalized modules/pxe-boot/stage-installer-artifacts.nix to stage both images via a shared rule-builder.
Updated docs/pxe-boot.md / docs/auto-installer.md to match, and fixed a stale reference to modules/installer/iso.nix left over from the just-merged netboot-hang fix (#30).
Test plan
nix eval .#nixosConfigurations --apply builtins.attrNames — flake still evaluates
bash scripts/codex-maintenance.sh --full-check — fmt/statix clean, every host + package evaluates including the new pxe-minimal
Confirmed via a temporary eval that both images' config.system.name match their menu entry/directory names (auto-installer, nixos-minimal)
nix build .#pxe-minimal succeeds
Booted the built pxe-minimal kernel+initrd directly under QEMU (no KVM available, software emulation) — reached a working interactive shell (nixos@nixos-minimal:~$) with no hang
Built nixosConfigurations.proxmox-pxe-boot.config.system.build.toplevel and inspected the generated menu.ipxe — entries and chain targets match the new naming
## Summary
- Renamed the iPXE menu entry that chain-loads this flake's own custom auto-installer image from `nixos` to `auto-installer` (label "NixOS Auto-Installer"), and set `networking.hostName` on `netbootSystem` so its generated system name (`nixos-system-auto-installer-*`) and staged directory (`/srv/pxe/http/auto-installer`) match the entry.
- Added a second, genuinely vanilla NixOS minimal netboot image (`netbootMinimalSystem` in `flake.nix` — nixpkgs's own `netboot-minimal.nix`, none of `modules/installer/common.nix`'s auto-installer wiring), built from source the same way and exposed as `packages.x86_64-linux.pxe-minimal`. Wired into the iPXE menu as `nixos-minimal` (item, hostname, and staged directory all matching).
- Generalized `modules/pxe-boot/stage-installer-artifacts.nix` to stage both images via a shared rule-builder.
- Updated `docs/pxe-boot.md` / `docs/auto-installer.md` to match, and fixed a stale reference to `modules/installer/iso.nix` left over from the just-merged netboot-hang fix (#30).
## Test plan
- [x] `nix eval .#nixosConfigurations --apply builtins.attrNames` — flake still evaluates
- [x] `bash scripts/codex-maintenance.sh --full-check` — fmt/statix clean, every host + package evaluates including the new `pxe-minimal`
- [x] Confirmed via a temporary eval that both images' `config.system.name` match their menu entry/directory names (`auto-installer`, `nixos-minimal`)
- [x] `nix build .#pxe-minimal` succeeds
- [x] Booted the built `pxe-minimal` kernel+initrd directly under QEMU (no KVM available, software emulation) — reached a working interactive shell (`nixos@nixos-minimal:~$`) with no hang
- [x] Built `nixosConfigurations.proxmox-pxe-boot.config.system.build.toplevel` and inspected the generated `menu.ipxe` — entries and chain targets match the new naming
🤖 Generated with [Claude Code](https://claude.com/claude-code)
The iPXE menu's "nixos" entry actually chain-loads this flake's own
custom auto-installer image, not a stock NixOS image — rename it to
"auto-installer" (label "NixOS Auto-Installer") so the menu says what it
boots, and set networking.hostName on netbootSystem to match, so the
generated system name (nixos-system-auto-installer-*) and staged
directory (/srv/pxe/http/auto-installer) agree with the menu entry too.
Add a second, genuinely vanilla NixOS minimal netboot image
(netbootMinimalSystem in flake.nix — nixpkgs' netboot-minimal.nix on its
own, none of modules/installer/common.nix's auto-installer wiring),
built from source the same way as the auto-installer image and exposed
as packages.x86_64-linux.pxe-minimal. Staged and menu-wired the same
way, as "nixos-minimal" (item, hostname, and directory all matching).
modules/pxe-boot/stage-installer-artifacts.nix is generalized to stage
both images via a shared rule-builder instead of one hardcoded set of
paths.
Verified: nix eval confirms both images' config.system.name matches
their menu entry/directory names, the pxe-boot host itself builds
clean with the new menu.ipxe, and the new pxe-minimal image was booted
directly under QEMU (kernel+initrd, no KVM) to a working login shell
with hostname nixos-minimal, no hang.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
nixostoauto-installer(label "NixOS Auto-Installer"), and setnetworking.hostNameonnetbootSystemso its generated system name (nixos-system-auto-installer-*) and staged directory (/srv/pxe/http/auto-installer) match the entry.netbootMinimalSysteminflake.nix— nixpkgs's ownnetboot-minimal.nix, none ofmodules/installer/common.nix's auto-installer wiring), built from source the same way and exposed aspackages.x86_64-linux.pxe-minimal. Wired into the iPXE menu asnixos-minimal(item, hostname, and staged directory all matching).modules/pxe-boot/stage-installer-artifacts.nixto stage both images via a shared rule-builder.docs/pxe-boot.md/docs/auto-installer.mdto match, and fixed a stale reference tomodules/installer/iso.nixleft over from the just-merged netboot-hang fix (#30).Test plan
nix eval .#nixosConfigurations --apply builtins.attrNames— flake still evaluatesbash scripts/codex-maintenance.sh --full-check— fmt/statix clean, every host + package evaluates including the newpxe-minimalconfig.system.namematch their menu entry/directory names (auto-installer,nixos-minimal)nix build .#pxe-minimalsucceedspxe-minimalkernel+initrd directly under QEMU (no KVM available, software emulation) — reached a working interactive shell (nixos@nixos-minimal:~$) with no hangnixosConfigurations.proxmox-pxe-boot.config.system.build.topleveland inspected the generatedmenu.ipxe— entries and chain targets match the new naming🤖 Generated with Claude Code