[syslinux] pxelinux takes too long trying all the config file options

Steve Rikli sr at genyosha.net
Mon Apr 3 13:19:09 PDT 2023

On Mon, Apr 03, 2023 at 12:52:41PM -0400, Rob Roschewsk via Syslinux wrote:
> Hi All,
> I have a situation where I want to netboot and ONLY use pxelinux.cfg/default.
> It seems to take FOREVER for pxelinux to try all of the config file
> file options before falling through to default .... trying each
> possible combination multiple times ... increasing the wait time
> everytime it doesn't get a response.
> From my log:
> Apr  2 19:53:17 helium tftpd[3372124]: tftpd: trying to get file: /tftpboot/pxelinux.0
> Apr  2 19:54:54 helium tftpd[3372133]: tftpd: trying to get file: /tftpboot/pxelinux.0
> Apr  2 19:54:54 helium tftpd[3372135]: tftpd: trying to get file: /tftpboot/pxelinux.0

Agreed, this seems slow. I also wouldn't expect to see it try & re-try
multiple times for /tftpboot/pxelinux.0 either.

> Apr  2 19:54:54 helium tftpd[3372139]: tftpd: trying to get file: /tftpboot/pxelinux.cfg/44454c4c-4700-104d-805a-cac04f5a4c32
> ......
> Apr  2 19:56:54 helium tftpd[3372496]: tftpd: trying to get file: /tftpboot/pxelinux.cfg/44454c4c-4700-104d-805a-cac04f5a4c32
> Apr  2 19:57:08 helium tftpd[3372505]: tftpd: trying to get file: /tftpboot/pxelinux.cfg/01-d8-9e-f3-13-22-18
> .....
> Apr  2 19:59:08 helium tftpd[3372623]: tftpd: trying to get file: /tftpboot/pxelinux.cfg/01-d8-9e-f3-13-22-18
> Apr  2 19:59:22 helium tftpd[3372626]: tftpd: trying to get file: /tftpboot/pxelinux.cfg/C0A81674
> .....
> Apr  2 20:01:22 helium tftpd[3372784]: tftpd: trying to get file: /tftpboot/pxelinux.cfg/C0A81674
> That's 16 minutes of waiting and it's still not finished!
> It's been a while since I played with this stuff but it never took
> that long to fall through to default before.
> How can I fix this?? Is there some option I can use to speed this up??

The multiple retries as tftpd scans for ipv6(?), mac/ethernet address
patterns and so on, makes me wonder if some or all of the tftpd directory
or contents isn't readable to the service.

Some things to check:

- perms & owners on /tftpboot/ and subdirs, e.g. /tftpboot/pxelinux.cfg/
  typically world-read, write isn't needed

- perms & owners for the files and images you're trying to load;
  typically world-read, write shouldn't be needed for this

- double-check your pxelinux.cfg/default file exists, readable, etc.

- look for a "tftpboot -> ." symlink in your tftpboot root dir, e.g.

  $ ls -la /tftpboot/tftpboot
  lrwxrwxrwx 1 root root 1 Oct 27  2010 /tftpboot/tftpboot -> .

- daemon/service args and directory paths for tftpd in your config

- tftp daemon startup & config is different circa RHEL7 and prior with
  xinetd, vs. e.g. RHEL8 and newer, modern Debian et al with systemD

For more troubleshooting, maybe add "-v" or "-vv" to your tftpd service,
see if a little more syslog verbosity shows anything.

I suspect a problem with tftpd (config?) rather than a PXELINUX issue;
are you using tftpd from your bootserver's OS, or perhaps some other
package or src?


More information about the Syslinux mailing list