iPXE discussion forum

Full Version: IPXE ISO boot failure
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I have compiled IPXE as 'make EMBED=boot.ipxe DEBUG=dhcp,tftp,http,scsi,iscsi,aoe,bzimage' where boot.ipxe is:

Code:
#!ipxe

# Get a DHCP address
:retry_dhcp
dhcp || goto retry_dhcp
echo DHCP has given IP number ${net0/ip} for MAC ${net0/mac}
echo Gateway IP: ${net0/gateway}

# Override PXE server provided by DHCP
set next-server xxx.xxx.xxx.xxx
set filename /pxelinux/lpxelinux-ipxe.0

# PXE boot
chain http://${next-server}${filename}

The 'lpxelinux-ipxe.0' file has been configured with:

pxelinux-options -a config-file default /var/lib/tftp/pxelinux/lpxelinux-ipxe.0
pxelinux-options -a path-prefix /pxelinux/ /var/lib/tftp/pxelinux/lpxelinux-ipxe.0
pxelinux-options -a next-server xxx.xxx.xxx.xxx /var/lib/tftp/pxelinux/lpxelinux-ipxe.0

I have booted from the resultant ISO on a virtual machine and a physical PC and it will not boot. See below image for the output (I've blanked out our PXE server IP address):

[Image: ipxe.png]

I cannot find any information on what 'bzImage 0xd8814 too short for 91648 byte of setup' means. Also of note is that there is no record on the server of 'ldlinux.c32' being requested.

Can anyone shed any light on this for me?
What is on the ISO? You might have better luck just booting with iPXE directly by extracting files from the ISO.

ldlinux.c32 is loaded by pxelinux. You might want to try and get an pxelinux file that have ldlinux.c32 embeded, but my experience of newer pxelinux is minimal and not so good.

Which file from ipxe are you using? is it ipxe.pxe or undionly.kpxe?

"bzImage 0xd8814 too short for 91648 byte of setup" is from the debug output since the pxelinux.0 file is not an linux kernel it just gives info about that and tries the next method to start the file, in this case it should end up in the NBP start code. - Which works.

As an side note, you might want to use netX instead of net0 since net0 might not be the one that got an IP.
It is the stock ISO as compiled from IPXE's make, containing five files:

BOOT.CAT
IPXE.KRN
ISOLINUX.BIN
ISOLINUX.CFG
LDLINUX.C32

Interesting that LDLINUX.C32 is in the ISO if that's only used by pxelinux. The version provided has been copied from the syslinux package on the Debian box I compiled it on by the looks of it.

I have also tried writing the ipxe.usb image from the same make to a flash drive, and that hangs at the same point.

Edit:

After some fiddling if I add
Code:
set 210:string http://${next-server}/
set 209:string pxelinux.cfg/default
after setting 'next-server' it successfully connects to our PXE server.

Thanks for the help.
Reference URL's