Vinícius Ferrão
2017-Jul-06 03:47 UTC
[syslinux] pxechn.c32 not working when coming from iPXE 1.0.0
Hello, I?m running a PXE server with syslinux-6.03 and something not right happens when a iPXE clients loads pxechn.c32 to get in a WDS server: it fails. I?ve discovered this when we started deploying oVirt in our infrastructure and QEMU calls SeaBIOS with iPXE for network booting. All other clients works just fine. Physical machines and VMware VM?s. I don?t know if this is a known bug or not, searched through the web and the mailing list but I was unable to see anyone with a similar issue. To start debugging here are some of my settings: Configured DHCP options in isc-dhcp-server 4.3.5-3: option architecture-type code 93 = unsigned integer 16; option space pxelinux; option pxelinux.magic code 208 = string; option pxelinux.configfile code 209 = text; option pxelinux.pathprefix code 210 = text; option pxelinux.reboottime code 211 = unsigned integer 32; class "pxeclients" { # 1. Dont know exactly what this if-statement does # 2. Aparently the pxelinux.pathprefix is ignored (perhaps a Debian DHCP issue) # So the ln -s workarround is needed to find the installers match if substring (option vendor-class-identifier, 0, 9) = "PXEClient"; next-server 146.164.36.17; site-option-space "pxelinux"; # Always send the PXELINUX options (specified in hexadecimal) if exists dhcp-parameter-request-list { option dhcp-parameter-request-list = concat(option dhcp-parameter-request-list,d0,d1,d2,d3); } if option architecture-type = 00:00 { filename "pxelinux/lpxelinux.0"; option pxelinux.configfile "pxelinux.cfg/bios"; } elsif option architecture-type = 00:09 { filename "pxelinux/bootx64.efi"; option pxelinux.configfile "pxelinux.cfg/efi64"; } elsif option architecture-type = 00:07 { filename "pxelinux/bootx64.efi"; option pxelinux.configfile "pxelinux.cfg/efi64"; } elsif option architecture-type = 00:06 { filename "pxelinux/bootia32.efi"; option pxelinux.configfile "pxelinux.cfg/efi32"; } else { filename "pxelinux/bios/lpxelinux.0"; option pxelinux.configfile "pxelinux.cfg/bios"; } } pxelinux.cfg Settings: label 8 menu label ^8. Windows Deployment Services kernel pxechn.c32 append undercity.if.ufrj.br::\Boot\x86\wdsnbp.com -W It?s pretty standard and was working flawlessly for years. The TFTP/PXE server runs on FreeBSD 11.0-RELEASE and the DHCP server is on Debian 9 Stretch. Thanks, V.