iPXE discussion forum
iPXE noob - Windows Server 2012 - Printable Version

+- iPXE discussion forum (https://forum.ipxe.org)
+-- Forum: iPXE user forums (/forumdisplay.php?fid=1)
+--- Forum: General (/forumdisplay.php?fid=2)
+--- Thread: iPXE noob - Windows Server 2012 (/showthread.php?tid=6823)

iPXE noob - Windows Server 2012 - jdkc4d - 2013-02-13 20:49


I really new to iPXE. I have been reading a lot about it on the site though, and if I can get it working, I expect it will be extremely useful to me. While I wait for the networking team to finish putting in switches, and setting up firewalls, I am trying to get iPXE working so when those things are done I can just go.

I was hoping I could run my logic of how the setup works past someone, just to see if I have everything setup properly. I cannot test what I have setup until the network is in place unfortunately.

So from a client machine on first boot, it runs through what you are calling legacy PXE. During this process the DHCP server points PXE to this undionly.kpxe file that is in the tftp directory. (Do I need to put the rest of the ipxe files into this directory as well?).
This file allows the system to iPXE. So the system then "boots" (for lack of a better term) through iPXE, where it is then pointed to a menu or winpe, or something similar to handle whatever process is necessary.

Also, Windows Server 2012 is a little different as far as the DHCP configuration goes, you can specify a user class, but you can't specify custom settings in the user class. I used a policy that references the user class instead.

If someone can please let me know if I am thinking of this correctly or not, I would really appreciate it.

Thank You.

RE: iPXE noob - Windows Server 2012 - plindbe2 - 2013-02-15 03:45

Hi Josh,

That sounds correct for the most part. You shouldn't need the other pxelinux or ipxe files in the tftp directory if you are just planning on booting up undionly.kpxe. This is a good link about the process with some diagrams, although the page was not written for a windows server:


The first picture shows what is the poster is accomplishing. You can basically stop after "serve files" in picture one as at that point, undionly.kpxe is on the client machine and with the default undionly.kpxe, you have an ipxe shell. You can override the shell with an embedded ipxe script (http://ipxe.org/embed) if you compile undionly.kpxe with the EMED=(script) option.

This link may help also.


I didn't actually end up trying this but he is chaining pxelinux to load the ipxe kernel which then loads up pxelinux and allows a boot for compatibility reasons.

For setting this up on windows, I'm not sure but this may help:


Maybe someone else with windows experience may chime in about the dhcp settings on windows server 2012.

RE: iPXE noob - Windows Server 2012 - MultimediaMan - 2013-02-17 05:24

You really don't need much in the way of custom settings. However, depending on your environment, you might need to do some other advance work.

Custom DHCP User Class Options are not required if you have a compile environment and embed a script into iPXE which essentialy can do the same thing (and a good deal more) without the hassle of creating a custom DHCP User Class. For an example of this, check out the following posts here and here.

If you are hosting the environment from Server 2012, consider:

Which DHCP server will be using?

You will need to enable DHCP Option 66 (TFTP Server) and Option 67 (Boot File). DHCP Option 175 is not really required unless you really want to do it. Setting it up in a Windows DHCP server is moderately difficult (You need a hex editor).

Which TFTP server will you be using?

As plindbe2 mentioned, the only file in the TFTP server directory need be undionly.kpxe. I am not sure if Server 2012 has the option for a TFTP server. In my experience Microsoft TFTP servers are the absolute worst as far as security is concerned. On top of that, there are a bewildering number of them.

Which WebServer will you be using?

If you are using IIS, you need to set the MIME types to allow pretty much all files in the directories used by the iPXE client.
The specific Option Directives need to be checked:


These options must be enabled for ISO and WIM booting. (I haven't bothered to look in Server 2012 IIS to see if they are.)

Are you booting a Baremetal Computer to iSCSI from iPXE?

A question whih needs answered right away is this: does your Baremetal Computer require drivers which Server 2012 does not natively have? If the answer is yes, you will have to download the ADK and create a boot/setup WIM which does have the drivers enabled.

Are you also going to attempt an installation over the network?

Get and download wimboot.

RE: iPXE noob - Windows Server 2012 - ArneLovius - 2013-02-18 22:54

For using IIS 7.5 (not tried 8 yet) to serve the files for ipxe and wimboot etc (not tried iso booting yet)

get this hotfix http://support.microsoft.com/kb/2646735 and run the appcmd.exe script provided changing the site name as appropriate.

Go into the IIS Manager, and on the specific site

add a mime type * with application/octet-stream this enables IIS to serve any file with an extension

go into handler mappings, (sort by path so * is at the top) , delete three handlers below with a path of *


You should now be able to use wimboot :-)

RE: iPXE noob - Windows Server 2012 - numbnuts - 2014-08-23 09:14

(2013-02-18 22:54)ArneLovius Wrote:  get this hotfix http://support.microsoft.com/kb/2646735 and run the appcmd.exe script provided changing the site name as appropriate.

Just spent the last couple weeks off banging my head on my desk between calls trying to figure out why IIS was behaving badly...

Why this isn't more widely documented is beyond me... Undecided