I had WDS setup as well with PXELinux, but I moved away from it because I didn’t like WDS and the way it handled EFI. I use Tiny PXE server with iPXE. I have two created one for bios and one for EFI.
MS DHCP Config:
Right Click IPv4
1. Define Vendor Classes
Display Name: PXEClient (UEFI X64)
Description: PXEClient:Arch:00007
ASCII: PXEClient:Arch:00007
Display Name: PXEClient (BIOS)
Description: PXEClient:Arch:00000
ASCII: PXEClient:Arch:00000
2. Right Click New Policy under Policy Scope
Policy Name: PXEClient (UEFI X64)
Description: PXEClient (UEFI X64)
Add Condition:
Check Append wildcard(*)
Click Add
Then Ok
Add DHCP Options
66 – pxe.domain.ca
67 - boot\ipxe.efi
3. Right Click New Policy under Policy Scope
Policy Name: PXEClient (BIOS)
Description: PXEClient (BIOS)
Add Condition:
Check Append wildcard(*)
Click Add
Then Ok
Add DHCP Options
66 – pxe.domain.ca
67 - boot\ipxe.kpxe
Built into the iPXE boot loaders:
#!ipxe
prompt --key 0x197e --timeout 4000 Press F12 for network boot... || goto no_shell
dhcp
set boot-imageurl
http://pxe.domain.ca/boot/background
set boot-image gflwallpaper.png
console --x 1024 --y 768
console --picture ${boot-imageurl}/${boot-image} --left 180 --right 82 --top 90
colour --basic 7 7
login
chain
http://${username:uristring}:${p.../menu.ipxe
exit
:no_shell
Exit
Chains to menu.ipxe
#!ipxe
set boot-url
http://pxe.domain.ca/boot/background
set boot-image gnlwallpaper.png
console --x 1024 --y 768
console --picture ${boot-url}/${boot-image} --left 180 --right 82 --top 90
set menu-timeout 10000
isset ${menu-default} || set menu-default ServerDeploymentX86
:menu
menu
item ServerDeploymentX86 Server Deployment X86
item ServerDeploymentX64 Server Deployment X64
item AcronisTrueImage Acronis TrueImage
item CloneZilla CloneZilla
item DBAN DBAN
item gParted gParted
item MemTest MemTest
item exit Exit
choose --timeout 0 --default ${menu-default} selected || goto cancel
set menu-timeout 0
goto ${selected}
:ServerDeploymentX86
kernel /boot/x86/wimboot
initrd /boot/x86/bootmgr.exe bootmgr.exe
initrd /boot/x86/bcd BCD
initrd /boot/boot.sdi boot.sdi
initrd /boot/x86/boot.wim boot.wim
boot || goto failed
:ServerDeploymentX64
kernel /boot/x64/wimboot
initrd /boot/x64/bootmgr.exe bootmgr.exe
initrd /boot/x64/bcd BCD
initrd /boot/boot.sdi boot.sdi
initrd /boot/x64/boot.wim boot.wim
boot || goto failed
:AcronisTrueImage
initrd /boot/iso/AcronisFree.iso
chain /boot/x64/memdisk iso raw
boot || goto failed
:CloneZilla
kernel /boot/iso/ClonezillaLive/live/vmlinuz boot=live config noswap nolocales edd=on nomodeset ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_batch="no" vga=788 nosplash noprompt fetch=http://pxe.domain.ca/boot/iso/ClonezillaLive/live/filesystem.squashfs
initrd /boot/iso/ClonezillaLive/live/initrd.img
boot || goto failed
:DBAN
initrd /boot/iso/dban-2.2.8_i586.iso
chain /boot/x64/memdisk iso raw
boot || goto failed
:gParted
kernel /boot/iso/GPartedLive/live/vmlinuz boot=live config noswap union=aufs noswap noprompt vga=788 fetch=${boot-url}/boot/iso/GPartedLive/live/filesystem.squashfs
initrd /boot/iso/GPartedLive/live/initrd.img
boot || goto failed
:MemTest
initrd /boot/iso/memtest.iso
chain /boot/x64/memdisk iso raw
boot || goto failed
:failed
exit
[/align]