Post

HP Z840 PXE Boot Nightmare: When 'NBP is too big' Meets Ancient GPUs

Discovering BIOS memory constraints and legacy GPU compatibility issues with UEFI the hard way.

HP Z840 PXE Boot Nightmare: When 'NBP is too big' Meets Ancient GPUs

Picture this: you’ve got a row of HP Z840 workstations lined up, ready for deployment. Your Windows Deployment Services PXE server is humming along nicely, and you’ve got your LiteTouchPE boot image ready to go. This should be straightforward: power on, network boot, deploy, done. Mass provisioning at its finest.

What could possibly go wrong?

The Setup

When you’re provisioning just one computer, life is simple. Boot from USB, install the OS, configure, and you’re done. But when you’re dealing with multiple systems, Preboot Execution Environment (PXE) becomes your best friend. Build your operating system image once, then network boot all your computers from a central server. Efficient, elegant, and in theory, foolproof.

I had everything ready: several 2017 HP Z840 workstations, a properly configured PXE server, and a tested boot image. Time to get this deployment party started 🎉

When Everything Goes Wrong

I powered up the first workstation and hammered F9 to access the boot menu. Selected ‘Network Boot’, chose Ethernet port 1, and settled back to watch the magic happen. The familiar PXE negotiation messages appeared on screen, the server was contacted, and the image download was imminent.

Then, in the blink of an eye, everything went sideways.

A cryptic error message flashed across the screen so quickly I nearly missed it: NBP is too big to fit in free base memory. Before I could fully process what had happened, the system had already rebooted itself into HP hardware diagnostics.

HP BIOS PXE boot: NBP is too big to fit in free base memory

I had to record the boot process with my phone just to capture that fleeting error message. There it was, taunting me with its brevity and complete lack of helpful context.

The First Solution (That Wasn’t)

A bit of research revealed the culprit: PXE over BIOS operates in a severely constrained memory environment, with just a few kilobytes to work with. My LiteTouchPE boot image, at a hefty 4909MB, was like trying to squeeze an elephant through a keyhole.

The solution seemed obvious: swap from legacy BIOS boot to UEFI. Modern systems, modern boot methods, problem solved, right?

I confidently navigated to the BIOS settings and looked for the PXE boot options under UEFI. Nothing. The system stubbornly refused to show any network boot options when set to UEFI mode. A quick check revealed the issue: the ‘Option ROM Policy’ was set to ‘Legacy’.

‘Simple fix’, I thought, changing the setting to ‘UEFI’.

Big mistake.

HP Computer Setup: Option ROM Launch Policy

When Simple Fixes Become Bigger Problems

The system wouldn’t boot. At all.

Instead of a successful POST, I was greeted with an ominous pattern of 6 beeps. According to the HP Z840 manual, this indicates a ‘Pre video error’, so either the GPU or motherboard had failed. I tried the usual suspects: CMOS battery flush, cleaning the dusty Quadro with contact cleaner. Nothing worked. Had I just killed a perfectly good workstation by changing a BIOS setting?

Panic set in. I had another identical system that I could use for comparison, so I began swapping components. Hours of troubleshooting later, including accidentally soft-bricking the second system (yes, I managed to break two systems in one day), a pattern emerged.

The problem wasn’t hardware failure, but that the Nvidia Quadro M4000 graphics card was ancient (from 2015!). This trusty old workhorse, which had been faithfully serving these workstations for nearly a decade, simply didn’t support UEFI boot. It was a relic from the transitional period when UEFI support wasn’t universal.

Nvidia Quadro M4000

The Goldilocks Solution

After recovering from my self-inflicted BIOS disasters, I discovered HP had anticipated this exact scenario. Just below the Option ROM Policy ‘UEFI’ which I had selected was a beautifully specific option: ‘All UEFI Except Video’.

This was the Goldilocks solution: not too legacy, not too modern, but just right. It would allow the system to PXE boot via UEFI (solving the memory constraint issue) while keeping the graphics card happy in legacy mode (preventing the 6-beep symphony of despair).

I held my breath as the system booted. The PXE negotiation began, the server responded, and then: success! The full LiteTouchPE boot image began downloading without complaint.

UEFI PXE boot: WDS Boot Manager

The Moral of the Story

What started as a simple deployment task turned into a masterclass in the complexities of modern computing. The intersection of legacy hardware, modern boot methods, and enterprise deployment tools created a perfect storm of compatibility issues.

The lesson? When working with mixed-generation hardware, always expect the unexpected. What appears to be a simple configuration change can cascade into hours of troubleshooting, especially when dealing with hardware that spans multiple technological generations.

And sometimes, the most elegant solutions come from manufacturers who’ve seen these exact problems before and built in just the right workaround, you just have to know where to look.

References

This post is licensed under CC BY 4.0 by the author.