iPXE discussion forum

Full Version: Recently iPXE don't chainboot.
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
About one years ago, I sucessed iPXE chainbooting.
I use iPXE 1.0.0+ (acc27) build.

But I tried chainboot by recently iPXE build.
I failed iPXE chainboot.
I use iPXE 1.0.0+(55e4).

Environment is same.
same server, same client.

Why?

Code:
Intel UNDI. PXE-2.1 (build 002)
Copyright (C) 1997-2000 Intel Corporation

For RealTek RTL8111B/8111C Gigabyte Ethernet Controller v2.14(000225)

CLIENT MAC ADDR: 00 25 11 CB 41 1B GUID 00020003-0004-0005-0006-00700080009
CLIENT IP: 172.20.10.83 MASK 255.255.0.0
DHCP IP: 172.20.0.70 PROXY IP:172.20.0.225
GATEWAY IP: 172.20.0.254

Auto-Select:
     splash

BOOT SERVER IP : 172.20.0.225

PXE-EB: !PXE at 9C3E:0070,entry point at 9C3E:0109
             UNDI code segment 9C3E:1A7A, data segment 923D:A010 (584-632kB)
             UNID device is PCI 02:00.0, type DIX+802.3
             584kB free base memory after PXE unload
iPXE initialising devices...ok

iPXE 1.0.0+ (55e4) -- Open Source Network Boot Firmware -- http://ipxe.org
Features: DNS HTTP iSCSI TFTP AoE ELF MBOOT PXE bzImage Menu PXEXT

net0: 00:25:11:cb:41:1b using undionly on UNDI-PCI02:00,0 (open)
  [Link:up, TX:0 TXER:0 RX:0 RXE:0]
Configuring (net0 00:25:11:cb:41:1b)....ok
net0: 172.20.10.83/255.255.0.0 gw 172.20.0.254
Nothing to boot: No such file or directory
No more network devices

Press Ctrl+B for the iPXE command line...


I found out old build chainboot fine.
I searched chainbooting recently iPXE build.

It is chainbooting underline.
https://git.ipxe.org/ipxe.git/commit/ba3...59c339bfa6
Code:
[settings] Re-add "uristring" setting type
author    Michael Brown <mcb30@ipxe.org>    
Tue, 25 Aug 2015 20:33:40 +0900 (12:33 +0100)
committer    Michael Brown <mcb30@ipxe.org>    
Tue, 25 Aug 2015 21:31:46 +0900 (13:31 +0100)
commit    ba3695353add020b686547699ba5e259c339bfa6
tree    d400084f87152adbbbc7dbca3140c1c2789c03b0    tree | snapshot (tar.gz tar.bz2 zip)
parent    4e03af8ec2d497e725566a91fd5c19dd604c18a6

After commit source, It cannot chainboot.

Enviroment
Server
- Debian Wheezy (Linux pxeserver 3.2.0-4-amd64 #1 SMP Debian 3.2.78-1 x86_64 GNU/Linux)
- ECS 945GCT-M
- Intel® Pentium® Dual CPU E2160 @ 1.80GHz
- Dnsmasq 2.62-3+deb7u3
- iPXE (undionly.kpxe)
Client
- Desktop PC
- ECS G43T-M5
- Realtec PCIe GBE Family Controller
- Intel UNDI,PXE-2.0 (bulid 082)
- Realtek RTL8139(A/B/C)/RTL8130 PCI Fast Ethernet Controller v2.11

dnsmasq conf
Code:
root@pxeserver:~# cat /etc/dnsmasq.conf | grep -v -e ^# -e ^$
dhcp-range=172.20.0.0,proxy
dhcp-boot=tag:!ipxe,undionly.kpxe,172.20.0.225
dhcp-match=set:ipxe,175 # gPXE/iPXE sends a 175 option.
dhcp-boot=tag:!ipxe,undionly.kpxe
dhcp-boot=tag:ipxe,http://172.20.0.225/a.ipxe
pxe-service=tag:!ipxe,x86PC,"splash",undionly.kpxe
enable-tftp
tftp-root=/var/ftpd
log-queries
conf-dir=/etc/dnsmasq.d

Is dnsmasq.conf settings wrong?
Old build can chainbooting.
I don't think it wrong.

I get two packet caputure chainbooting and not chainbooting by tcpdump.
I share it for you by cloudshark.

Chainboot sucess!
iPXE 1.0.0+(ba36) Tue, 25 Aug 2015


Chainboot failed!
iPXE 1.0.0+(55e4)
If that commit is the one that made it not work then I'm guessing that you're scripts use some specific feature of the uristring syntax and you need to carefully check your ipxe scripts and fix the broken HTTP query-string formatting.
Reference URL's