PXE boot -- kernel not found on TFTP server

17,927

You may try to run tcpdump (or wireshark) on the boot server and see what the client is asking for. Personally, I like to see what's running on the wire as it's truth, whole truth and only truth ;) and it helps me to determine what's really going on.

Speaking of permissions -- remember about directory permissions too. The process has to have execute (x) permission to the directory to be able to get inside that directory (think: cd /path/x) and read (r) permission to read its content (think: ls /path/x). The execute bit is a must-have, and read permission for the user the tftpd daemon runs shouldn't hurt either.

Next thing, you may add -vvvv to the options inside /etc/default/tftpd-hpa file and restart the server. This will increase logging level of the tftpd-hpa daemon and may give you extra tips as to the root of the problem (take a look inside /var/log/messages).

Another idea: try to get the file your client wants by tftp (you will get what the client wants by listening to what runs on the wire) from the tftp server. If you can download the file, then you are sure, that your tftp server works, files are there, paths are correct and permissions are proper. If there are any other problems, they are on the client side (or client-server protocol mismatch).

Last thing: I do not like the HOWTO's recommendation of making /tftpboot directory world writeable. After you get the setup working remove write permission from the directory. A rogue client can easily fill up the filesystem your /tftpboot directory resides on -- there is no authentication built in into the protocol (hence "trivial" ftp).

Hope the wall of text helps ;)

Share:
17,927

Related videos on Youtube

user70523
Author by

user70523

Updated on September 17, 2022

Comments

  • user70523
    user70523 almost 2 years

    I followed the following link for PXE boot, http://www.howtoforge.com/setting-up-a-pxe-install-server-on-ubuntu-9.10-p3

    and I was able to ping the client from the server and also when I booted up the client It is getting the IP address from the server.

    But later,I got this error

    PXELinux 3.82 2009-06-09
    . . . [other informations]
    !PXE Entry point found (we hope) at 9D3B:0109 via plan A
    UNDI code segment at 9D3B len 16C2
    UNDI data segment at 933B len A000
    Getting cached packet 01 02 03
    . . . [other informations]
    TFTP prefix:
    Trying to load: pxelinux.cfg/ec5db4c0-74fe-d511-b9e7-3d9235afe5a1
    Trying to load: pxelinux.cfg/01-00-17-31-b6-5e-a8
    Trying to load: pxelinux.cfg/0A64491E
    Trying to load: pxelinux.cfg/0A64491
    Trying to load: pxelinux.cfg/0A6449
    Trying to load: pxelinux.cfg/0A644
    Trying to load: pxelinux.cfg/0A64
    Trying to load: pxelinux.cfg/0A6
    Trying to load: pxelinux.cfg/0A
    Trying to load: pxelinux.cfg/0
    Trying to load: pxelinux.cfg/default
    Unable to locate configuration file
    Boot failed: press a key to retry or wait for reset
    

    I have put all the files mentioned in the link in tftpboot. Can anyone explain what could be the problem.

    • Sameer
      Sameer over 13 years
      Is "default" mentioned in pxelinux.cfg/default in /tftpboot/pxelinux.cfg folder? pxelinux.cfg is a folder.
    • hookenz
      hookenz almost 10 years
      I always try from the beginning. tftp to your tftp server and checking that you can read pxelinux.cfg/default? it might be a permissions issue.
  • Admin
    Admin over 12 years
    The execute bit is NOT a must have for directories - please read 'man ls'.
  • natxo asenjo
    natxo asenjo over 10 years
    instead of disabling SElinux, you may want to learn how to use it instead (like it or not, it is enabled by default); set it to permissive mode first with setenforce Permissive, and if pxe booting then works, then you may want to restore the securitycontext of the tftp directory files (which is probably the problem then) with restorecon -rv /var/lib/tftpboot (standard location for tftp files in centos). Anyway, the fine manual: access.redhat.com/site/documentation/en-US/… . Having said this all, the OP does not say he uses Centos