Rename PXE installer menu entry, add vanilla NixOS minimal netboot entry #31

Merged
beatzaplenty merged 1 commits from worktree-pxe-menu-rename-and-minimal into main 2026-07-21 22:48:49 +00:00
Owner

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

  • 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

🤖 Generated with Claude Code

## 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)
beatzaplenty added 1 commit 2026-07-21 22:46:12 +00:00
Rename PXE installer menu entry, add vanilla NixOS minimal netboot entry
Check NixOS configurations / eval-hosts (pull_request) Successful in 10m42s
e92aab617f
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.
beatzaplenty merged commit cb141f0a41 into main 2026-07-21 22:48:49 +00:00
This repo is archived. You cannot comment on pull requests.
No Reviewers
No labels
1 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: beatzaplenty/nixos#31