[ipxe-devel] Windows having problems parsing iBFT from recent iPXE versions?

Michael Brown mcb30 at ipxe.org
Thu Oct 30 13:02:21 UTC 2014

On 29/10/14 22:15, Floris Bos wrote:
>> You could try using the iPXE native driver instead of undionly.kkpxe.
>> This will definitely change the state of the NIC at the time that the
>> Windows driver starts up, and it may be that Windows likes this state
>> better.
> Does seem to work with the native driver.


> - iPXE communcation seems to end with an iSCSI read response, iPXE ACKs
> nicely
> - then there is this long wait on Windows startup (waiting for disks?),
> and during that there are some TCP retransmissions of an iSCSI NOP
> command trying to keep the connection warm from SAN to virtualbox.
> - straight after that Windows takes over, there is some DHCP/ARP traffic
> (not shown below), a LLMNR request for wpad, and a new iSCSI login.
> <snip>
> - Seems the iSCSI read response is retransmitted lacking the last ACK.
> Those packets may arrive when Windows is about to take over.
> - Windows does not seem to do any iSCSI communication

Fantastic debugging work.  Could you possibly copies post the two 
captures (either as attached raw .pcap files, or uploaded to 
https://appliance.cloudshark.org/upload/ ?

>> The iBFT is not created until you attempt to boot from the SAN target.

My mistake; the iBFT is actually created at the moment of the "sanhook" 
command, which would give time for any warning message to be displayed. 
  The architectural issue is then that iPXE has no mechanism in place 
for displaying non-fatal error messages.  We could make int13_describe() 
return an error, but this would then prevent the SAN device from being 
hooked.  We could hack a printf() into int13.c, but that kind of 
crossover between mechanism and policy is the kind of ugliness that I've 
worked hard for over a decade to eliminate from this codebase.

Since it's a fairly pathological system in which the memory above 512kB 
is all used by the time iPXE starts up, and since it's definitely not 
the cause of the problem you're experiencing, I don't propose to do 
anything about it now.


More information about the ipxe-devel mailing list