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>
This commit is contained in:
@@ -20,38 +20,14 @@ mount -t devtmpfs devtmpfs /dev 2>/dev/null
|
||||
mkdir -p /tmp /run
|
||||
|
||||
echo "[1/4] Loading NIC drivers..."
|
||||
echo " Kernel: $(uname -r)"
|
||||
echo " Interfaces before driver load: $(ls /sys/class/net/ 2>/dev/null)"
|
||||
|
||||
# Dependency modules first. insmod does not resolve deps; main NIC
|
||||
# drivers like igb need dca + i2c-algo-bit, atlantic needs macsec,
|
||||
# some Intel drivers need libeth/libie. Load helpers first so the
|
||||
# main driver module has its required symbols available.
|
||||
for mod in /lib/modules/libeth.ko /lib/modules/libie*.ko /lib/modules/dca.ko \
|
||||
/lib/modules/i2c-algo-bit.ko /lib/modules/macsec.ko \
|
||||
/lib/modules/mii.ko /lib/modules/ssb.ko /lib/modules/libphy.ko \
|
||||
/lib/modules/mdio*.ko /lib/modules/phy*.ko /lib/modules/ptp*.ko; do
|
||||
[ -f "$mod" ] || continue
|
||||
insmod "$mod" 2>&1 | grep -v '^$' | head -1 || true
|
||||
done
|
||||
|
||||
# Main NIC drivers (everything else in /lib/modules/ that is not a helper
|
||||
# or the overlay/squashfs modules). Errors are now VISIBLE so if a
|
||||
# driver fails to load we can see why.
|
||||
for mod in /lib/modules/*.ko; do
|
||||
base=$(basename "$mod")
|
||||
case "$base" in
|
||||
libeth.ko|libie*.ko|dca.ko|i2c-algo-bit.ko|macsec.ko|mii.ko|ssb.ko|libphy.ko|overlay.ko|squashfs.ko|mdio*.ko|phy*.ko|ptp*.ko)
|
||||
continue ;;
|
||||
esac
|
||||
echo " insmod $base"
|
||||
insmod "$mod" 2>&1 | head -1 || true
|
||||
echo " insmod $(basename $mod)"
|
||||
insmod $mod 2>/dev/null || true
|
||||
done
|
||||
sleep 5
|
||||
|
||||
echo " Interfaces after driver load: $(ls /sys/class/net/ 2>/dev/null)"
|
||||
echo " Kernel messages mentioning NIC driver activity:"
|
||||
dmesg 2>/dev/null | grep -iE "eth|igc|igb|bnxt|tg3|r8169|atlantic|e1000|ixgbe|i40e|eno|ens|enp" | tail -20
|
||||
echo " Interfaces after driver load:"
|
||||
ls /sys/class/net/ 2>/dev/null
|
||||
|
||||
echo " Waiting for network interface..."
|
||||
IFACE=""
|
||||
@@ -71,13 +47,9 @@ done
|
||||
echo ""
|
||||
|
||||
if [ -z "$IFACE" ]; then
|
||||
echo ""
|
||||
echo "ERROR: No network interface found after 60s."
|
||||
echo " /sys/class/net/: $(ls /sys/class/net/ 2>/dev/null)"
|
||||
echo " Last 40 lines of dmesg (look for probe failures):"
|
||||
dmesg 2>/dev/null | tail -40
|
||||
echo ""
|
||||
echo " Dropping to busybox shell for manual debug. reboot with 'reboot -f'."
|
||||
echo "ERROR: No network interface found!"
|
||||
echo "Available interfaces:"
|
||||
ls /sys/class/net/ 2>/dev/null
|
||||
exec sh
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user