PXE boot -- kernel not found on TFTP server
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 ;)
Related videos on Youtube
user70523
Updated on September 17, 2022Comments
-
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 over 13 yearsIs "default" mentioned in pxelinux.cfg/default in /tftpboot/pxelinux.cfg folder? pxelinux.cfg is a folder.
-
hookenz almost 10 yearsI 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 over 12 yearsThe execute bit is NOT a must have for directories - please read 'man ls'.
-
natxo asenjo over 10 yearsinstead 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