Probably useless 'advice', but if MS would kindly detect the existance of and use iPXE's http/ftp capable APIs, that'd be the best solution.<br><br><div class="gmail_quote">On Wed, Jun 8, 2011 at 5:15 AM, <span dir="ltr"><<a href="mailto:Tom.LAUWERS@ext.ec.europa.eu">Tom.LAUWERS@ext.ec.europa.eu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div>
<p><span lang="nl"><font face="Arial" size="2">Dear iPXE developers,</font></span>
</p>
<p><span lang="nl"><font face="Arial" size="2">I'm having the following problem with iPXE; I'm using the bootable ISO that I burned to a CD-ROM.</font></span>
</p>
<p><span lang="nl"><font face="Arial" size="2">I'm booting WinPE over PXE. This works when I'm using a DHCP server on a local subnet (on which I can set the correct scope options), but due to security policies I cannot set DHCP scope options on the rest of the network. So the objective is to boot iPXE from CD-ROM or USB-key with an embedded script that simply executes:</font></span></p>
<p><span lang="nl"> <font face="Arial" size="2">dhcp</font></span>
<br><span lang="fr-be"> <font face="Arial" size="2">set next-server x.x.x.x</font></span>
<br><span lang="fr-be"> <font face="Arial" size="2">imgfetch /Boot/pxeboot.n12</font></span>
<br><span lang="fr-be"> <font face="Arial" size="2">boot pxeboot.n12</font></span>
</p>
<p><span lang="fr-be"><font face="Arial" size="2">I tested this and it works well. It doesn't work anymore though when I increase the TFTP block size within the BCD config (so Microsoft's bootmgr.exe will request bigger chunks of data from the TFTP-server).</font></span></p>
<p><span lang="fr-be"><font face="Arial" size="2">Our TFTP-server must be reached over a WAN (cross-country), so TFTP-throughput is very slow (inherent of the protocol, since it's UDP and every packet needs to be acknowledged). On all of our PC's on the local subnet (using DHCP scope options and the BOOT ROM of the NIC, so not iPXE) it works well when I increase tftpblocksize to 8K and download time of a standard WinPE image drops from 10 minutes to 1,5 minute; which is great. But iPXE is unable to handle this kind of TFTP-traffic.</font></span></p>
<p><span lang="fr-be"><font face="Arial" size="2">Here's the script that I use to create the BCD config:</font></span>
</p>
<p><span lang="fr-be"> <font face="Arial" size="2">set BCD-File=C:\TFTP-ROOT\Boot\BCD</font></span>
<br><span lang="fr-be"> <font face="Arial" size="2">del %BCD-File%</font></span>
<br><span lang="fr-be"> <font face="Arial" size="2">Bcdedit /createstore %BCD-File%</font></span>
<br><span lang="fr-be"> <font face="Arial" size="2">Bcdedit /store %BCD-File% /create {ramdiskoptions}</font></span>
<br><span lang="fr-be"> <font face="Arial" size="2">Bcdedit /store %BCD-File% /set {ramdiskoptions} ramdisksdidevice boot</font></span>
<br><span lang="fr-be"> <font face="Arial" size="2">Bcdedit /store %BCD-File% /set {ramdiskoptions} ramdisksdipath \boot\boot.sdi</font></span>
<br><span lang="fr-be"><font face="Arial" size="2">---> Bcdedit /store %BCD-File% /set {ramdiskoptions} ramdisktftpblocksize 1432</font></span>
<br><span lang="fr-be"> <font face="Arial" size="2">Bcdedit /store %BCD-File% /set {ramdiskoptions} ramdisktftpwindowsize 2</font></span>
<br><span lang="fr-be"> <font face="Arial" size="2">Set guid={10000000-1000-1000-1000-100000000000}</font></span>
<br><span lang="fr-be"> <font face="Arial" size="2">Bcdedit /store %BCD-File% /create %guid% /d "WinPE PXE-boot image" /application osloader</font></span>
<br><span lang="fr-be"> <font face="Arial" size="2">Bcdedit /store %BCD-File% /set %guid% systemroot \Windows</font></span>
<br><span lang="fr-be"> <font face="Arial" size="2">Bcdedit /store %BCD-File% /set %guid% detecthal Yes</font></span>
<br><span lang="fr-be"> <font face="Arial" size="2">Bcdedit /store %BCD-File% /set %guid% winpe Yes</font></span>
<br><span lang="fr-be"> <font face="Arial" size="2">Bcdedit /store %BCD-File% /set %guid% osdevice ramdisk=[boot]\Boot\winpe_x86.wim,{ramdiskoptions}</font></span>
<br><span lang="fr-be"> <font face="Arial" size="2">Bcdedit /store %BCD-File% /set %guid% device ramdisk=[boot]\Boot\winpe_x86.wim,{ramdiskoptions}</font></span>
<br><span lang="fr-be"> <font face="Arial" size="2">Bcdedit /store %BCD-File% /create {bootmgr} /d "Lite Touch Installation" </font></span>
<br><span lang="fr-be"> <font face="Arial" size="2">Bcdedit /store %BCD-File% /set {bootmgr} timeout 1</font></span>
<br><span lang="fr-be"> <font face="Arial" size="2">Bcdedit /store %BCD-File% /set {bootmgr} displayorder %guid%</font></span>
</p>
<p><span lang="fr-be"><font face="Arial" size="2">This works, but is very slow. So I replace line 7 with:</font></span>
</p>
<p><span lang="fr-be"> <font face="Arial" size="2">Bcdedit /store %BCD-File% /set {ramdiskoptions} ramdisktftpblocksize 8192</font></span>
</p>
<p><span lang="fr-be"><font face="Arial" size="2">Now it still works on pc's using the internal NIC's PXE-boot code (and it's much faster), but it doesn't work anymore with iPXE.</font></span></p>
<p><span lang="fr-be"><font face="Arial" size="2">My guess is that iPXE cannot handle TFTP-responses that are spread over multiple ethernet frames. 1432 bytes works well because with overhead it's lower than the MTU (1500 bytes). But when the TFTP-server sends 2 or more UDP packets (to send a bigger block of data, requiring less acknowledgements), these somehow get lost.</font></span></p>
<br>
<p><span lang="fr-be"><font face="Arial" size="2">Any ideas? Thanks a lot in advance.</font></span>
</p>
<br>
<p><b><span lang="nl"><font color="#000080" face="Arial Unicode MS" size="2">Best regards,</font></span></b>
<br><b><span lang="nl"><font color="#000080" face="Arial Unicode MS" size="2">Bien à Vous,</font></span></b>
</p>
<p><b><span lang="nl"> <font color="#000080" face="Arial Unicode MS" size="2">Tom Lauwers</font></span></b><span lang="nl"></span>
<br><span lang="it"> <font color="#000080" face="Arial Unicode MS" size="2">DIGIT A.2-002 Desktop, Peripherals & Mobile Solutions</font></span>
<br><span lang="it"> <font color="#000080" face="Arial Unicode MS" size="2">Siemens</font></span>
<br><span lang="fr"> <i> <font color="#000080" face="Arial Unicode MS" size="2">Office: B-28 03/030</font></i></span>
<br><span lang="fr"> <i> <font color="#000080" face="Arial Unicode MS" size="2">Tel.</font></i></span><i><span lang="it"><font color="#000080" face="Arial Unicode MS" size="2"> (+32-2)[29]51649 -</font></span><span lang="en-us"> <font color="#000080" face="Arial Unicode MS" size="2">Fax. (+32-2)[29]50164</font></span></i><span lang="en-us"><br>
</span><span lang="fr"> </span><span lang="fr"><i> <font color="#000080" face="Arial Unicode MS" size="2">E-mail: <a href="mailto:tom.lauwers@ext.ec.europa.eu" target="_blank">tom.lauwers@ext.ec.europa.eu</a></font></i></span><span lang="en-us"><br>
</span><span lang="en-us"></span><span lang="en-us"></span><span lang="en-us"></span><span lang="nl-be"></span>
</p>
<br>
<br>
</div>
<br>_______________________________________________<br>
ipxe-devel mailing list<br>
<a href="mailto:ipxe-devel@lists.ipxe.org">ipxe-devel@lists.ipxe.org</a><br>
<a href="https://lists.ipxe.org/mailman/listinfo/ipxe-devel" target="_blank">https://lists.ipxe.org/mailman/listinfo/ipxe-devel</a><br>
<br></blockquote></div><br>