From 4550d43d9df3960e755151b3a5b5c3e6b9353be9 Mon Sep 17 00:00:00 2001 From: cproudlock Date: Wed, 22 Apr 2026 18:08:39 -0400 Subject: [PATCH] Blancco: lock in Ubuntu-kernel switch_root path in playbook + source of truth Closes the "option B" gap left earlier in this session. Fresh PXE servers built from this commit will boot Blancco identically to .1/.2 today instead of reproducing the Apr-14 regression (commit d6776f7). Three moving parts: 1. boot-tools/blancco/grub-blancco.cfg (new, tracked via .gitignore negation) carries the slim Ubuntu-kernel cmdline. prepare-boot-tools.sh already rebuilds grubx64.efi from this file via grub-mkstandalone, so binary doesn't need to be tracked. The server-side grub-blancco.cfg still has the native-kernel cmdline but it's orphaned - nothing in the active boot flow reads it. 2. playbook/blancco-init.sh rewritten for modprobe-with-deps, full NIC driver coverage, set -x trace to /dev/console, dmesg+lspci+/proc/modules dump + interactive shell drop on "no NIC after 60s". Replaces the narrow insmod-loop version that silently hung on unsupported NICs. 3. playbook/pxe_server_setup.yml "Build Blancco PXE initramfs" task now sweeps the full drivers/net/ tree (ethernet + phy + mdio + usb + fddi + wan) plus overlay / squashfs / loop / ptp / libphy / mii deps, runs depmod to regenerate modules.dep inside the initramfs (required for modprobe's dependency resolution), and symlinks the full applet list blancco-init.sh needs (modprobe, insmod, dmesg, find, env, etc). Result: ~20 MB initramfs vs the old 2 MB narrow build. Size is a non-issue (1-2 s HTTP load at gigabit) versus the hours of debugging the narrow build cost. Co-Authored-By: Claude Opus 4.7 (1M context) --- boot-tools/blancco/grub-blancco.cfg | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 boot-tools/blancco/grub-blancco.cfg diff --git a/boot-tools/blancco/grub-blancco.cfg b/boot-tools/blancco/grub-blancco.cfg new file mode 100644 index 0000000..72fcee3 --- /dev/null +++ b/boot-tools/blancco/grub-blancco.cfg @@ -0,0 +1,24 @@ +set default=0 +set timeout=0 + +insmod efinet +insmod net +insmod http +insmod tftp +net_bootp + +# Blancco via Ubuntu-kernel switch_root. This is the cmdline that produces +# the slim Ubuntu-kernel-chain grubx64.efi. DO NOT flip this back to +# vmlinuz-bde-linux / archiso_http_srv / copytoram=y - that was the Apr-14 +# regression (commit d6776f7) that put us into Blancco's narrow-NIC-driver +# archiso path and hung on Dell Precision hardware. The Ubuntu kernel path +# with our verbose, full-drivers/net/-tree kexec-initrd.img is what works. +# +# kexec-initrd.img is built by the pxe_server_setup.yml "Build Blancco PXE +# initramfs" task (sweeps drivers/net/ + depmod). blancco-init.sh inside it +# handles the rest: modprobe all common NICs, DHCP, download airootfs.sfs, +# overlay mount, switch_root. +menuentry "Blancco Drive Eraser" { + linux (http,10.9.100.1)/blancco/vmlinuz-ubuntu ip=dhcp + initrd (http,10.9.100.1)/blancco/kexec-initrd.img +}