Speeding up the 1E PXE Lite boot process

This week I had the great fortune of hanging out with fellow MVP Dave Kawula and OSD guru Emile Cabot during the #OSDWeek in Calgary. Yesterday we installed and configured the 1E PXE Lite software that allows normal Windows clients act as PXE servers for ConfigMgr 2012. Though it worked perfectly well, I thought the boot image download process was much slower than it used to be (almost 80 seconds in a virtual machine), and after some research I noted that the PXE Lite setup didn't set the TFTP Ramdisk blocksize in the default .bcd file, but instead was using the default of 1456 bytes. Well, cranking it up to 16384 makes it much faster.

Modifying the .bcd entry to speed up the network boot.

After doing the following changes, my 80 seconds download, went down to about 20 seconds.

Note: This may very well be unsupported by 1E so please don't call their support about issues with this 🙂

  1. Figure out where your PXE Lite enabled boot image is, in my environment it was in the C:\ProgramData\1E\PXELite\TftpRoot\Images\PS100019 folder
    NomadPXE
  2. Make a backup copy of the .bcd file (boot.PS100019.bcd in my example).
  3. Open an elevated command prompt, and type the following command:

    bcdedit /store C:\ProgramData\1E\PXELite\TftpRoot\Images\PS100019boot.PS100019.bcd /set {ramdiskoptions} ramdisktftpblocksize 16384

  4. Done, now the boot image downloads much quicker. If you want to verify the configuration, you can run the following command:

    bcdedit /enum all /store C:\ProgramData\1E\PXELite\TftpRoot\Images\PS100019\boot.PS100019.bcd

NomadPXE2
The bcdedit commands executed.

NomadPXE3
The PXELiteServer.log showing the new block size.

pxe
The highspeed PXE download.

Happy deployment, / Johan

About the author

Johan Arwidmark

0 0 votes
Article Rating
Subscribe
Notify of
guest
9 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Lopan
Lopan
7 years ago

This change ended up biting me in the behind after months of success on all my systems.
But then I got a HP Elitebook 745 G2 and it would not PXE boot. Luckily I remember making this change so I set it back to the default 1456 and restarted WDS services. Then it worked fine again.
Be careful setting this value.
Possibly a BIOS update would resolve this, but I'm not about to update all our systems BIOS for a few seconds saving on boot time.

tmartin1994
tmartin1994
8 years ago

Keep in mind, CreateBCD.exe should be run as a task step in a task sequence which has the desired 1E PXE Everywhere boot image assigned to it. To set the tftpBlocksize, follow these instructions – help.1e.com/display/PXE22/CreateBCD.exe+command-line+switches If you've already deployed PXE Everywhere and you'd like to modify the tftpBlocksize, you will need to first modify the CreateBCD.exe task step in the task sequence and then rerun the advertisement/deployment on the targeted PXE Everywhere local host workstation(s). Note/WARNING: As Johan eluded to earlier: Some hardware may not support block size values higher than 16384 bytes and hence may fail to PXE… Read more »

DanielRatliff
DanielRatliff
8 years ago

After testing real quick, it looks like the above reg key only sets the maximum allowed, it doesn't actually specify the block size to be used. Johan's trick is still necessary to speed up the process!

DanielRatliff
DanielRatliff
8 years ago

There is a MaxBlockSize DWORD registry key you can set under the HKLMSoftwareWow6432Node1EPXELite key to control this but I haven't done any testing with it. Might be worth a shot.

Admin
Admin
8 years ago

I haven't tried doing this en masse, and I'm note sure if running that command on all PXE Lite Clients is the best approach… It could be that there are other mechanisms in the product that can be used to create/update the package.bcd file. Also, please not that you may have hardware out there not capabale of reading 16 kb packages, so you need to test. Most machines new than 3 – 4 years normally works fine, but there can be expceptions, as well as older BIOS versions that does not support it. If 16 kb block size fails, you… Read more »

Emmetd
Emmetd
8 years ago

We currently have PXE Lite deployed throughout our environment. Do you know how I can apply this setting to all current pxe lite clients?

marshal.anson
marshal.anson
8 years ago

Never mind.

marshal.anson
marshal.anson
8 years ago

So, I tired this out and I keep getting an error:

An error occurred while attempting to reference the specified entry.
The system cannot find the file specified.

The "/enum all" command works fine.

marshal.anson
marshal.anson
8 years ago

So, I tired this out and I keep getting an error:

An error occurred while attempting to reference the specified entry.
The system cannot find the file specified.

The "/enum all" command works fine.


>