PXE Boot Process - Understanding what is going on

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

Biren78

Active Member
Jan 16, 2013
550
94
28
Thought I would start a discussion. PXE booting basically allows diskless clients to boot from a network image. Here is basically what I think you need:

  • Client set BIOS to have NIC Option ROM enabled
  • Client boots and PXE is enabled
  • A DHCP request is sent to the DHCP server from the PXE client
  • The DHCP server sends the client a file to download.
  • The client uses TFTP to try downloading boot file
  • File is executed on the client
  • Client boots

Does that sound right?
 

Peter_U

New Member
Apr 11, 2012
22
0
1
USA-Canada Border
Don't you need to set up a TFTP server? Also I think there is a bunch on the router side.

Oh - maybe you just meant the PXE process from the client end. Think you may be right then.
 

apnar

Member
Mar 5, 2011
115
23
18
  • The DHCP server sends the client a file to download.
I'd rephrase this to say the DHCP server responds with additional information usually the name/IP of the TFTP server and the name of the file to download. There are other options though, for example (for PXE clients that support it, like iPXE) the DHCP server may respond with an iSCSI path which will be booted from not using TFTP at all.

I'd also break this step up a bit:

  • File is executed on the client
In most cases the file you specify in your DHCP config isn't really the OS you want the client to boot, but instead a PXE boot manager type executable (pxelinux.0 for example). That boot manger then executes on the client most often connecting back to the TFTP server looking for more information about what it should do for that client (pxelinux.cfg if you're using pxelinux): what kernel it should boot, what initrd images, where it should mount its root file system, etc. After it downloads those things via more TFTP calls it will then pass control over to the kernel.

Also keep in mind that what's grabbed via TFTP is usually only the kernel and initrd images. In most cases, unless you're booting something really small, the main OS filesystem will be stored elsewhere via something like NFS or iSCSI so all that will need to be configured as well (the most common methods being via tftp configurations, more DHCP options, or hard coded in the boot manager file).
 

badatSAS

Member
Nov 7, 2012
103
0
16
Boston, MA
Typically it's a separate server/service/daemon responding to the actual PXE broadcast with the bootup instructions as opposed to the dhcp server itself. The DHCP server typically will supply some parameters as option codes however
 

badatSAS

Member
Nov 7, 2012
103
0
16
Boston, MA
I consider PXE to be more of an abstract concept than a complex one - it's reasonably simple once it's been configured correctly, until you have to set up the ip-helpers across network segments anyways =)

Most of my experience with PXE is via a proprietary enterprise solution for server provisioning for work - I will say that I'd much rather configure PXE every day then ever touch another AIX NIM or Solaris JumpStart environment - and I would rather do NIM and Jumpstart then even have to discuss HPUX Ignite