port=0 # no dns listen-address=192.168.1.131 interface=eth2 enable-tftp tftp-root=/tftpboot dhcp-range=192.168.72.200,192.168.72.250,255.255.255.0 #dhcp-range=192.168.72.200,static,255.255.255.0 dhcp-host=00:0c:29:69:68:c4,192.168.72.202,ttt # Match the proc arch # https://www.iana.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xhtml#processor-architecture dhcp-match=BIOS, option:client-arch, 0 #0x0000, x86_64 dhcp-match=UEFI32, option:client-arch, 6 #0x0006, x86 uefi dhcp-match=UEFI, option:client-arch, 7 #0x0007, x86_64 uefi dhcp-match=PPC64, option:client-arch, 12 #0x000c, powerpc open firmware dhcp-match=PPC_OPAL, option:client-arch, 14 #0x000e, POWER OPAL v3 #dhcp-vendorclass=BIOS,PXEClient:Arch:00000 #x86_64 BIOS #dhcp-vendorclass=UEFI32,PXEClient:Arch:00006 #x86 UEFI #dhcp-vendorclass=UEFI,PXEClient:Arch:00007 #x86_64 UEFI # USE iPXE install dhcp-match=set:IPXE,175 # ipxe client has 175 option dhcp-boot=tag:!IPXE,tag:BIOS,ipxe/undionly.kpxe dhcp-boot=tag:!IPXE,tag:UEFI,ipxe/ipxe.efi dhcp-boot=tag:IPXE,ipxe/boot.ipxe # USE Grub2 install # will read /tftpboot/grub.cfg or boot/grub2/grub.cfg #dhcp-boot=tag:PPC64,boot/grub2/powerpc-ieee1275/core.elf #dhcp-boot=tag:BIOS,boot/grub2/i386-pc/core.0 #dhcp-boot=tag:UEFI,boot/grub2/x86_64-efi/core.efi [root@pxe /]# tree -L 3 /tftpboot/ /tftpboot/ ├── boot │   └── grub2 │   ├── fonts │   ├── grub.cfg │   ├── grub.cfg-01-00-0c-29-69-68-c4 │   ├── i386-pc │   ├── locale │   ├── powerpc-ieee1275 │   └── x86_64-efi ├── grub.cfg.ori ├── ipxe │   ├── boot.ipxe │   ├── ipxe.efi │   └── undionly.kpxe └── mnt -> /mnt/ [root@pxe /]# rpm -qa |grep -E "ipxe|grub2" ipxe-bootimgs-20180825-2.git133f4c.el7.noarch grub2-common-2.02-0.86.el7.centos.noarch grub2-tools-2.02-0.86.el7.centos.x86_64 grub2-pc-modules-2.02-0.86.el7.centos.noarch grub2-2.02-0.86.el7.centos.x86_64 grub2-efi-x64-modules-2.02-0.86.el7.centos.noarch grub2-tools-minimal-2.02-0.86.el7.centos.x86_64 grub2-tools-extra-2.02-0.86.el7.centos.x86_64 grub2-pc-2.02-0.86.el7.centos.x86_64 grub2-ppc64-modules-2.02-0.86.el7.centos.noarch [root@pxe ipxe]# cat /tftpboot/ipxe/boot.ipxe #!ipxe :start menu iPXE Boot Options item macip Install from MAC or IP ipxe file item default Install from default.ipxe file item shell iPXE shell item local Boot from Local Disk item reboot Reboot choose --default macip --timeout 5000 option && goto ${option} :shell shell :macip set base http://${next-server} chain ${base}/${mac}.ipxe || chain ${base}/${ip}.ipxe || goto default :default chain ${base}/default.ipxe || goto shell :local sanboot --no-describe --drive 0x80 :reboot reboot