After a PXE boot failure, and after some troubleshooting I wanted to share the reason why it was failing in case others have the same problem. The actual failure message observed in SMSPXE.log is quite descriptive as long as you know what it means.
You PXE boot a client computer and instead of it completing the PXE boot process it just hangs on the DHCP line with several dots appearing after DHCP like in the screenshot below
after a while it will timeout with PXE-E53: No boot filename received.
Note: The PXE-E53: No boot filename received can appear for a variety of reasons, this is just one of them.
after this point it will try the next boot device (perhaps your hard disc) and this may generate another error if no operating system was found on it.
If you monitor the SMSPXE.log file on the OSD enabled distribution point you may see the following lines repeated over and over while attempting to PXE boot the client.
00:15:5D:33:7F:23, 704349C9-88E2-4D26-BAA1-97032EE7100B: PXE provider is not active. Ignoring DHCP discover message.
00:15:5D:33:7F:23, 704349C9-88E2-4D26-BAA1-97032EE7100B: Not serviced.
The first alphanumeric characters are the MAC address of the client computers network card, and the second alphanumeric characters are the GUID.
Ok so what is going on ? time to check the Distribution Point properties by opening the Server and Site system roles under Site Configuration in the Configuration Manager console
if you have the same problem as me, then it’s likely that someone has forgotten to select (or deselected) the following setting
Allow this distribution point to respond to PXE requests.
If your distribution point properties had that setting unchecked, place a check mark in there, click apply and click ok.
Note: obviously only do so if you are confident that the PXE distribution point is properly secured and there’s no risk of servers or clients PXE booting and getting a required OS installed on them by accident.
Once done you can try PXE booting the client again, things should look a lot better
and indeed your SMSPXE.log file will look healthier too