[syslinux] intermittent pxe failure

Geert Stappers stappers at stappers.nl
Mon May 7 13:39:12 PDT 2007


Op 05-05-2007 om 00:49 schreef Larry Howe:
   <snip/> 
> - happens rarely, but when it does it affects all clients. May last for an
>   hour or so when it happens.

Gut feeling:
 a TFTP daemon that is started by inetd and stays live that hour
 (why the TFTPd handles vmlinuz, but not the initrd is indeed strange)

> Question: what code is responsible for downloading vmlinuz, and which code is
> responsible for downloading initrd? Is it the pxe firmware, or pxelinux
> itself?

Briefly:
  bootROM downloads and starts 'pxelinux.0'
  pxelinux.0 downloads and parses "pxelinux.cfg/default"
  pxelinux.0 downloads _both_ vmlinuz and initrd.
  all three use the same 'get_a_network_packet' software routine in the PXE ROM
  pxelinux.0 starts vmlinuz
  vmlinuz searches initrd (in download memory) and reads from it.

> What happens between the vmlinuz download and the initrd download?

Sorry, I don't know (for sure)


> Any network activity that could potentially lead to a failure?

Only malicious network activity ( which is poorly documented ;-)


> Is this activity logged anywhere?

IIRC get the TFTP requests in the syslog, you might need -v -v -v
parameters.


> Any suggestions welcome!


tcpdump the TFTP server on the TFTP port.
Watching only on port 69 will get you only the TFTP Requests.
That has two advantages:
 * low disk usage,which makes monitoring for weeks possible
 * you should if the client really requests the initrd.



> Larry

Cheers
Geert Stappers


P.S.
 From http://www.nabble.com/intermittent-pxe-failure-t3655353.html
| Am I right in assuming that PXE loads vmlinuz, but then vmlinuz loads initrd?

No. pxelinux loads both.




More information about the Syslinux mailing list