Commit Graph

18 Commits

Author SHA1 Message Date
a88f347777 Fix iPXE boot: load initrd before kernel, add imgfree
- Load initrd FIRST to address UEFI memory mapping requirements
- Add imgfree to clear previous images before loading
- Put kernel args directly on kernel line instead of using imgargs
- Add break=mountroot for debugging initramfs execution
2026-02-02 00:02:46 +01:00
eaaacc2f68 Fix overlay mount: use separate mount points for squashfs and overlay
The overlay mount was failing because it tried to mount overlay onto /root
while also using /root as the lowerdir source. This is invalid - you cannot
overlay-mount a directory onto itself.

Fix: Mount squashfs to /mnt/squashfs, tmpfs to /mnt/overlay, then mount
overlay onto /root using the squashfs mount as lowerdir.
2026-02-01 15:59:58 +01:00
b7a52c0c37 Switch to HWE kernel and improve boot reliability
- Install linux-image-generic-hwe-24.04 (6.14+) for RTL8125BP XID 689 support
- Enable noble-updates and noble-security repositories in chroot
- Add explicit rdinit=/init and panic=-1 kernel parameters for boot robustness
- Rename CLAUDE.md to AGENTS.md for broader AI assistant coverage
- Document dracut module alternative and verify-image.sh utility
- Clean up initramfs netboot script comments
2026-02-01 15:51:19 +01:00
a9b18b5821 simplified, removed --name etc 2026-02-01 01:00:00 +01:00
b2c1cc6577 Remove cloud-initramfs-rooturl to fix boot failure
Conflicts with custom netboot script that provides essential tmpfs overlay.
cloud-initramfs-rooturl mounts squashfs read-only, but diskless nodes need
writable overlay for /var/log, /tmp, /etc, and runtime state.

Fixes: Can't open blockdev error during boot
2026-01-31 13:26:34 +01:00
95f543b4f4 Fix PAL review findings: documentation accuracy and code quality
- Update CLAUDE.md with complete kernel parameters including boot=netboot
- Remove duplicate wget/curl package declarations in build-image.sh
- Check unsquashfs in both /usr/bin and /usr/sbin in verify-image.sh
- Use consistent $quiet variable expansion in netboot hook functions

All issues identified in zen-opus pre-commit review are now resolved.
2026-01-31 10:55:57 +01:00
d7d0098a5c Add required hook functions to netboot boot script
Initramfs-tools boot scripts must provide hook functions (netboot_top,
netboot_premount, netboot_bottom) and mount wrappers (mount_top, mount_premount,
mount_bottom) for the init script to call them properly.

Without these, the init script doesn't recognize netboot as a valid boot method
and falls back to trying /dev/root, causing "cannot open block device" errors.
2026-01-31 10:43:33 +01:00
8e9a90bfc3 Install squashfs-tools, wget, and curl in chroot for initramfs hooks
The initramfs hooks copy binaries from the chroot environment, so these tools
must be installed there. Without squashfs-tools, unsquashfs is missing from the
initramfs and the netboot script cannot extract the root filesystem.
2026-01-31 10:22:13 +01:00
a4fe05e26a Fix netboot initialization and add documentation tooling
- Add CLAUDE.md with project architecture and build documentation
- Add verify-image.sh script to validate generated netboot images
- Fix boot.ipxe kernel parameters:
  - Add boot=netboot to invoke custom initramfs script
  - Add console=tty0 for VGA output alongside serial console
  - Fix earlyprintk serial specification
- Remove dead symlink creation in build-image.sh (http/latest pointed to non-existent directory)

The boot=netboot parameter is critical - without it, initramfs falls back to local boot
and fails with /dev/root errors. The console changes enable viewing boot messages on
monitor instead of only serial port.
2026-01-31 09:57:56 +01:00
adc92a61b4 Fix initramfs hook integration - copy custom configs before chroot and build with proper mounts 2026-01-30 23:48:30 +01:00
902f00e2b9 Fix file permissions on generated boot artifacts for HTTP serving 2026-01-30 23:31:30 +01:00
18f0f637bd Fix make clean target to safely unmount stray filesystems before deletion 2026-01-30 23:27:57 +01:00
aea6e58f43 Fix build script paths to be relative to script location, enabling builds on any machine 2026-01-30 23:18:39 +01:00
e9954c8ae8 Update .gitignore to exclude http/ and tftp/ directories but keep boot.ipxe configuration 2026-01-30 23:14:05 +01:00
53e5d201b0 Add Makefile for building and deploying netboot images to NAS 2026-01-30 23:12:08 +01:00
0c4a99605a Add netboot infrastructure: custom initramfs hooks, build scripts, iPXE configuration 2026-01-30 23:09:54 +01:00
4790e69113 rewrite based on reference project from github 2026-01-30 22:58:51 +01:00
1e884eec99 scripts 2026-01-30 22:51:37 +01:00