Is there a resource I am overlooking for compiling and setting up a UEFI network boot through PXE? Otherwise, I am not sure what I am doing wrong. Any ideas?
Compiling myself:
When attempting to compile iPXE I don't get any errors, but when booting to the ipxe.efi file on the client I get a loop where it tries to download the file, succeeds and then tries to download again. There does not seem to be an error message or I am missing it. Compiled master from last change (Wed, 6 Jan 2016 12:55:08 -0600 (18:55 +0000)). Changing the config in config/general.h does not seem to make a difference, although, I have tried with changes and without. I may be missing something there.
Precompiled:
ipxe.efi downloaded from the bottom of the page here:
http://ipxe.org/howto/chainloading
When I ctrl-b and run chain ipxe/menu.ipxe, then select CentOS 6.5 I get "Could not select: Exec format error (
http://ipxe.org/2e008081)." Searching for the error I did not find anything. I tried this with a test CentOS menu item with http:// and nfs://.
Hardware:
HP DL60 Gen9
HP Ethernet 1Gb 2-port 361i Adapter
(up to date firmware as of 11/2015)
menu.ipxe:
Code:
#!ipxe
:start
menu PXE Client Menu
item centos65 CentOS 6.5
item netbootall Network Boot Multiple OS Test
choose target && goto ${target}
:centos65
kernel http://10.10.10.1/installs/centos-65-net/images/pxeboot/vmlinuz initrd=http://10.10.10.1/installs/centos-65-net/images/pxeboot/initrd.img
initrd http://10.10.10.1/installs/centos-65-net/images/pxeboot/initrd.img
boot
:netbootall
chain http://boot.salstar.sk
dhcpd.conf:
Code:
# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
ddns-update-style none;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;
ddns-domainname "domain.company.com";
ddns-rev-domainname "in-addr.arpa.";
option domain-search "test.company.com";
option domain-name "test.domain.company.com";
option domain-name-servers 172.16.0.179, 172.16.0.177;
default-lease-time 604800;
max-lease-time 604800;
ignore client-updates;
authoritative;
## EFI options
option architecture-type code 93 = unsigned integer 16;
##iPXE Options
option space ipxe;
option ipxe-encap-opts code 175 = encapsulate ipxe;
option ipxe.priority code 1 = signed integer 8;
option ipxe.keep-san code 8 = unsigned integer 8;
option ipxe.skip-san-boot code 9 = unsigned integer 8;
option ipxe.syslogs code 85 = string;
option ipxe.cert code 91 = string;
option ipxe.privkey code 92 = string;
option ipxe.crosscert code 93 = string;
option ipxe.no-pxedhcp code 176 = unsigned integer 8;
option ipxe.bus-id code 177 = string;
option ipxe.bios-drive code 189 = unsigned integer 8;
option ipxe.username code 190 = string;
option ipxe.password code 191 = string;
option ipxe.reverse-username code 192 = string;
option ipxe.reverse-password code 193 = string;
option ipxe.version code 235 = string;
option iscsi-initiator-iqn code 203 = string;
# Feature indicators
option ipxe.pxeext code 16 = unsigned integer 8;
option ipxe.iscsi code 17 = unsigned integer 8;
option ipxe.aoe code 18 = unsigned integer 8;
option ipxe.http code 19 = unsigned integer 8;
option ipxe.https code 20 = unsigned integer 8;
option ipxe.tftp code 21 = unsigned integer 8;
option ipxe.ftp code 22 = unsigned integer 8;
option ipxe.dns code 23 = unsigned integer 8;
option ipxe.bzimage code 24 = unsigned integer 8;
option ipxe.multiboot code 25 = unsigned integer 8;
option ipxe.slam code 26 = unsigned integer 8;
option ipxe.srp code 27 = unsigned integer 8;
option ipxe.nbi code 32 = unsigned integer 8;
option ipxe.pxe code 33 = unsigned integer 8;
option ipxe.elf code 34 = unsigned integer 8;
option ipxe.comboot code 35 = unsigned integer 8;
option ipxe.efi code 36 = unsigned integer 8;
option ipxe.fcoe code 37 = unsigned integer 8;
option ipxe.vlan code 38 = unsigned integer 8;
option ipxe.menu code 39 = unsigned integer 8;
option ipxe.sdi code 40 = unsigned integer 8;
option ipxe.nfs code 41 = unsigned integer 8;
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;
subnet 10.10.10.0 netmask 255.255.255.0 {
option routers 10.10.10.1;
option subnet-mask 255.255.255.0;
option broadcast-address 10.10.10.255;
## remove this when on dhcp proxy/relay
option ipxe.no-pxedhcp 1;
option domain-name "test.mbx.com";
range 10.10.10.21 10.10.10.254;
default-lease-time 1300;
if option architecture-type = 00:09 {
filename "ipxe/ipxe.efi";
next-server 10.10.10.1;
} elsif option architecture-type = 00:07 {
filename "ipxe/ipxe.efi";
next-server 10.10.10.1;
} else {
filename "bios/pxelinux.0";
next-server 10.10.10.1;
}
option root-path "/srv/fsroot";
ddns-update-style none;
}