My existing network environment provides the following:

  • DHCP server that sends PXE clients to a particular TFTP server
  • TFTP server with SYSLINUX "pxelinux.0" file for booting

The SYSLINUX installation defaults on timeout to "boot from local disk", which allows existing clients to reboot correctly but also provides for the option of booting into a rescue or provisioning environment.

I am testing a new provisioning environment which resides on a different TFTP server than the one pointed to by the DHCP server. Existing clients depend upon the current environment, but I'd like to refer test clients to the new TFTP server for provisioning.

Ideally I'd like to be able to use a particular menu option from the SYSLINUX prompt that would cause the client to boot from another (hardcoded, rather than DHCP-server-provided) TFTP server.

I tried installing a custom gPXE image as a menu option on SYSLINUX. The custom image (re-)acquired a DHCP address and went to the hardcoded TFTP server, but it's missing a piece that I don't think gPXE is capable of fulfilling.

The new provisioning system is based upon Cobbler, and it depends upon the usual PXE sequence where the client looks for a file named with its MAC address before settling for a less-specific, and eventually generic, file. From what I can tell, it appears that gPXE isn't capable of doing this mac-address-based boot sequence.

Can anyone tell me of another way to do this? I've been banging my head for several days on this problem. Thanks in advance!

  • Same TFTP chaining

    Put the other PXE boot loader as kernel. This is the example I used to chain load BSD PXE boot loader from Linux PXE chain loader.

    LABEL openbsd
        MENU LABEL ^OpenBSD 3.9
        KERNEL openbsd_3.9/pxeboot.0
  • Other TFTP chaining:

    pxechain.com used to chain load other PXE server.

    pxechain.com is available within syslinux-common package in Debian/Ubuntu or syslinux project archive under different filename pxechn.c32.


    LABEL pxeserver2
            menu label Switch to 2nd PXE server...
            kernel pxechain.com

Take pxelinux.0 from Ubuntu 10.4 LTS. That will go through the "normal" iteration: MAC - IP in HEX - ... default.

It would be simpler to tell your DHCP server NOT to anwer to certain requests and set up another DHCP in the same network (not authoritative) that answers your test-server requests (and does not answer to anything else).

  • I don't have control over the DHCP server. Once the new provisioning system is "live" I may be able to get them to cut over directly to the new TFTP server, but only if I can place the rescue environment and other images out there. I will never be able to get changes made on a per-server basis. – Tony Kolstee Apr 1 '12 at 0:41
  • Which pxelinux.0 boot file should the Ubuntu version replace? The one on the initial "main" TFTP server? If that's the case, will this still allow us to use the menu options that we're currently using out there? What should be in the new menu option that will point the client to the second TFTP server? – Tony Kolstee Apr 1 '12 at 0:43
  • @Tony I thought you already solved that secondary TFTP part an were searching for a solution there? Anyway you can replace both. Syslinux from Ubuntu is quite "new" - compared to RedHat 5 or SLES 10. So it should be able to parse your syntax. – Nils Apr 1 '12 at 20:21
  • I had been able to point the client at the secondary TFTP site, but it was going straight for "pxelinux.0" at the secondary site and not using the normal MAC address-based sequence of requests. I felt a change on the first TFTP server might cause the client to correctly work wrt the second TFTP server. I'll give this a try and see if it does any good, although I have a feeling some config file stanzas will need to change. – Tony Kolstee Apr 2 '12 at 17:30
  • @TonyKolstee what is wrong with going for pxelinux.0? That will in turn go for the "MAC"-request, then to the "IP/Hex" request. – Nils Apr 2 '12 at 21:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.