Commit Graph

4 Commits

Author SHA1 Message Date
cproudlock
c74148a222 Blancco boot configs: update IP from 10.9.100.1 to 172.16.9.1
grub-blancco.cfg was still referencing the old PXE LAN IP for kernel,
initrd, and archiso_http_srv. Also synced repo copy to match the live
BDE-kernel TFTP-based config. Updated iPXE scripts (blancco.ipxe,
blancco-debug.ipxe, blancco-chain.ipxe) for the same IP change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 13:17:14 -04:00
cproudlock
4550d43d9d 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) <noreply@anthropic.com>
2026-04-22 18:08:39 -04:00
cproudlock
c918dea9d1 Revert all Blancco changes from this session
User reports Blancco was working before our mirror/session activity
today - then my attempted fixes (grubx64.efi rebuild, kexec-initrd
driver sweep, verbose blancco-init.sh) made it worse:

  - First attempt (narrow igc driver add) did not help because the
    switch-root path was not the one actually loaded by grubx64.efi's
    embedded config.
  - Second attempt (swapped grub embedded config to Ubuntu-kernel path)
    got further, but then kexec-initrd modules failed on insmod.
  - Third attempt (full ethernet tree sweep) pulled in broken ancient
    drivers (winbond-840, w5100-spi, xirc2ps_cs) that failed with
    unknown-symbol errors and prevented good drivers from loading.

Full revert: .gitignore, blancco-init.sh, pxe_server_setup.yml back to
the pre-session commit 6dcf832 state. Removes boot-tools/blancco/grub-
blancco.cfg from git (it was only added this session).

Runtime on both PXE servers was also restored: grubx64.efi and
kexec-initrd.img reverted from the .bak files taken before each
modification this session.

Whatever was there before today is now restored byte-for-byte on both
servers. If there is still a Blancco boot issue on specific modern
hardware that the user needs to fix, we will diagnose that narrowly
against the actual failure mode on that specific machine, not by
making sweeping preemptive changes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 13:33:49 -04:00
cproudlock
2ac88a6c1b Blancco: back to Ubuntu-kernel switch_root; track grub-blancco.cfg in git
Two changes in one:

1. grub-blancco.cfg reverts to booting vmlinuz-ubuntu + kexec-initrd.img
   (the switch_root path from commit dd2fec5). b7cd097 had switched
   back to Blancco's native vmlinuz-bde-linux via TFTP for "hardware
   compat," but that turned out to regress on modern Dell fleet
   hardware - Blancco's packaged kernel lacks igc (Intel I225/I226 on
   Latitude 5330/5440, Pro-series, newer OptiPlex). Symptom was
   successful TFTP fetch of kernel+initrd, then silence at the Blancco
   UI ("no network card found") because the rootfs HTTP fetch has no
   NIC to use.

   The switch_root initramfs built by the Ansible playbook now carries
   igc, bnxt_en, r8169, atlantic, and other modern NIC modules, so the
   Ubuntu kernel path reliably finds a working NIC across the whole
   fleet before HTTP-fetching airootfs.sfs and kexec'ing into Blancco.

   Native kernel still runs under Blancco's control after kexec - only
   the *loader* kernel changes.

   The grubx64.efi binary (embedding this config via grub-mkstandalone)
   was rebuilt and pushed to /var/www/html/blancco/ on both PXE servers
   (.1 and .2). Old binary kept as grubx64.efi.bak-<timestamp> on each.

2. .gitignore: negate boot-tools/blancco/grub-blancco.cfg so this one
   file is version-controlled. boot-tools/ is otherwise local cache
   artifacts (kernel/initrd/sfs extracted from Blancco ISO, grubx64.efi
   built output). grub-blancco.cfg is source-of-truth and must not be
   re-derived; any new PXE server build needs the exact same content
   or the Blancco boot chain regresses.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 13:23:09 -04:00