<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><P><BR><STRONG>Dear</STRONG>,</P>
<P> </P>
<P>  <STRONG>I have</STRONG> to write a mail for help to this maillist, because i have failed to register on site <A href="http://forum.ipxe.org/">http://forum.ipxe.org/</A>.</P>
<P> </P>
<P> </P>
<P>  <STRONG>Firstly</STRONG> I copy the "<A id=chainloading_windows_deployment_services name=chainloading_windows_deployment_services>Chainloading Windows Deployment Services</A>" text on <A href="http://ipxe.org/appnote/chainload_wds">http://ipxe.org/appnote/chainload_wds</A> to below.</P>
<P> </P>
<P><A id=the_wds_boot_process name=the_wds_boot_process><FONT size=4><STRONG>The <SPAN class=search_hit>WDS</SPAN> boot process</STRONG></FONT></A></P>
<DIV class=level2>
<P>Once <CODE><SPAN class=search_hit>wds</SPAN>nbp.<SPAN class=search_hit>com</SPAN></CODE> starts, it initiates a session with the <SPAN class=search_hit>WDS</SPAN> server that was specified in the <ACRONYM title="Dynamic Host Configuration Protocol">DHCP</ACRONYM> <CODE>next-server</CODE> parameter. The session protocol uses a <SPAN class=search_hit>com</SPAN>bination of <ACRONYM title="Dynamic Host Configuration Protocol">DHCP</ACRONYM> requests and responses and <SPAN class=search_hit>TFTP</SPAN> to provide the client with the appropriate boot loader (such as <CODE>bootmgr.exe</CODE> or <CODE>bootmgfw.efi</CODE>) and boot configuration data (BCD). </P>
<P>The <CODE><SPAN class=search_hit>wds</SPAN>nbp.<SPAN class=search_hit>com</SPAN></CODE> program performs client architecture detection and reports it back to the server via the <SPAN class=search_hit>WDS</SPAN> session. This session protocol uses <ACRONYM title="Dynamic Host Configuration Protocol">DHCP</ACRONYM> as an <ACRONYM title="Remote Procedure Call">RPC</ACRONYM> service endpoint, and the data passed back and forth (such as architecture information) is encoded in <ACRONYM title="Dynamic Host Configuration Protocol">DHCP</ACRONYM> option 250. Together with option 252 (used by <SPAN class=search_hit>WDS</SPAN> to indicate BCD file name) and the <ACRONYM title="Dynamic Host Configuration Protocol">DHCP</ACRONYM> <CODE>file</CODE> field (pointing the client to the next network boot program), the <ACRONYM title="Dynamic Host Configuration Protocol">DHCP</ACRONYM>+<SPAN class=search_hit>TFTP</SPAN> negotiation <SPAN class=search_hit>com</SPAN>pletes the <SPAN class=search_hit>WDS</SPAN> session. </P></DIV>
<H3><A id=example_boot_process name=example_boot_process>Example boot process</A></H3>
<DIV class=level3>
<OL>
<LI class=level1>
<DIV class=li>Client: <SPAN class=search_hit>iPXE</SPAN> requests <SPAN class=search_hit>TFTP</SPAN> <CODE>/boot/x86/<SPAN class=search_hit>wds</SPAN>nbp.<SPAN class=search_hit>com</SPAN></CODE> from <CODE>ip.of.<SPAN class=search_hit>wds</SPAN>.server</CODE>.</DIV></LI>
<LI class=level1>
<DIV class=li>Client: <CODE><SPAN class=search_hit>wds</SPAN>nbp.<SPAN class=search_hit>com</SPAN></CODE> uses a direct <ACRONYM title="Dynamic Host Configuration Protocol">DHCP</ACRONYM> request to <CODE>ip.of.<SPAN class=search_hit>wds</SPAN>.server</CODE>, with no option 250 nor 252 defined.</DIV></LI>
<LI class=level1>
<DIV class=li>Server: <ACRONYM title="Dynamic Host Configuration Protocol">DHCP</ACRONYM> response:</DIV>
<UL>
<LI class=level2>
<DIV class=li>filename: <CODE>boot\x86\<SPAN class=search_hit>wds</SPAN>nbp.<SPAN class=search_hit>com</SPAN></CODE></DIV></LI>
<LI class=level2>
<DIV class=li>option 250: <CODE>0b0101100400000001ff</CODE></DIV></LI>
<LI class=level2>
<DIV class=li>option 252: <CODE>\Tmp\x86{<GUID>}.bcd</CODE></DIV></LI></UL></LI>
<LI class=level1>
<DIV class=li>Client: <CODE><SPAN class=search_hit>wds</SPAN>nbp.<SPAN class=search_hit>com</SPAN></CODE> uses a direct <ACRONYM title="Dynamic Host Configuration Protocol">DHCP</ACRONYM> request to <CODE>ip.of.<SPAN class=search_hit>wds</SPAN>.server</CODE>:</DIV>
<UL>
<LI class=level2>
<DIV class=li>option 250: <CODE>0d0208000e010001020006ff</CODE></DIV></LI></UL></LI>
<LI class=level1>
<DIV class=li>Server: <ACRONYM title="Dynamic Host Configuration Protocol">DHCP</ACRONYM> response:</DIV>
<UL>
<LI class=level2>
<DIV class=li>filename: <CODE>boot\x86\<SPAN class=search_hit>wds</SPAN>nbp.<SPAN class=search_hit>com</SPAN></CODE></DIV></LI>
<LI class=level2>
<DIV class=li>option 250: <CODE>0b0101100400000001ff</CODE></DIV></LI>
<LI class=level2>
<DIV class=li>option 252: <CODE>\Tmp\x86x64{GUID}.bcd</CODE></DIV></LI></UL></LI>
<LI class=level1>
<DIV class=li>Client: <CODE><SPAN class=search_hit>wds</SPAN>nbp.<SPAN class=search_hit>com</SPAN></CODE> requests <SPAN class=search_hit>TFTP</SPAN> <CODE>/boot\x86\<SPAN class=search_hit>wds</SPAN>nbp.<SPAN class=search_hit>com</SPAN></CODE> from <CODE>ip.of.<SPAN class=search_hit>wds</SPAN>.server</CODE>. Note the use of slashes.</DIV></LI>
<LI class=level1>
<DIV class=li>Client: <CODE><SPAN class=search_hit>wds</SPAN>nbp.<SPAN class=search_hit>com</SPAN></CODE> uses a direct <ACRONYM title="Dynamic Host Configuration Protocol">DHCP</ACRONYM> request to <CODE>ip.of.<SPAN class=search_hit>wds</SPAN>.server</CODE>:</DIV>
<UL>
<LI class=level2>
<DIV class=li>option 250: <CODE>0c01010d0208000e010001020006ff</CODE></DIV></LI></UL></LI>
<LI class=level1>
<DIV class=li>Server: <ACRONYM title="Dynamic Host Configuration Protocol">DHCP</ACRONYM> response:</DIV>
<UL>
<LI class=level2>
<DIV class=li>filename: <CODE>boot\x64\pxeboot.n12</CODE>.</DIV></LI>
<LI class=level2>
<DIV class=li>option 250: <CODE>0b0101100400000001ff</CODE></DIV></LI>
<LI class=level2>
<DIV class=li>option 252: <CODE>\Tmp\x86x64{GUID}.bcd</CODE></DIV></LI></UL></LI>
<LI class=level1>
<DIV class=li>Client: <CODE><SPAN class=search_hit>wds</SPAN>nbp.<SPAN class=search_hit>com</SPAN></CODE> requests <SPAN class=search_hit>TFTP</SPAN> <CODE>/boot\x64\pxeboot.n12</CODE>.</DIV></LI>
<LI class=level1>
<DIV class=li>Client: <CODE>pxeboot</CODE> requests <SPAN class=search_hit>TFTP</SPAN> <CODE>/boot\x64\bootmgr.exe</CODE>.</DIV></LI>
<LI class=level1>
<DIV class=li>Client: <CODE>pxeboot</CODE> requests <SPAN class=search_hit>TFTP</SPAN> <CODE>\Tmp\x86x64{GUID}.bcd</CODE>.</DIV></LI>
<LI class=level1>
<DIV class=li>Client: <CODE>bootmgr.exe</CODE> executes and reads the BCD.</DIV></LI></OL></DIV>
<P class=li> </P>
<P class=li><STRONG>My situation</STRONG> is a DHCP on a server2012 and a WDS on another server2012r2, and I'm booting a WinPE on a client computer.</P>
<P class=li> </P>
<P class=li><STRONG>The question</STRONG> is when I boot using gPXE(gpxe-1.0.1-gpxe.pxe), it works well, exactly the same boot process copied above from step 1 to 12.</P>
<P class=li> </P>
<P class=li><STRONG>But when</STRONG> I boot using iPXE(undionly.kpxe, latest version), it stucks in a loop, repeats loading wdsnbp.com again and again.</P>
<P class=li> </P>
<P class=li><STRONG>I had</STRONG> a look in wireshark and found that the problem is at the boot process<STRONG> step 7</STRONG>, copied above. </P>
<P class=li> </P>
<P class=li><STRONG>When in gPXE</STRONG>, wdsnbp.com sends a DHCP request with option 250 <FONT face="Courier New">0c01010d0208000e010001020006ff, and then the process goes to next process step 8. </FONT></P>
<P class=li><FONT face="Courier New"></FONT> </P>
<P class=li><FONT face="Courier New"><STRONG>But when in iPXE</STRONG>, wdsnbp.com sends <FONT face=宋体>a DHCP request with no option 250 nor 252 defined, just the same like at process step 2, so the process goes step 2 to step 7 repeatly. </FONT></FONT></P>
<P class=li> </P>
<P class=li>What should I do with this problem?</P>
<P class=li> </P>
<P class=li>Thanks for your consiseration.</P>
<P class=li>Looking forward to your answer.</P>
<P class=li> </P><br /><br /><br />