4

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.

Cristian Ciupitu
  • 6,396
  • 2
  • 42
  • 56
user70523
  • 141
  • 1
  • 1
  • 2
  • 1
    Is "default" mentioned in pxelinux.cfg/default in /tftpboot/pxelinux.cfg folder? pxelinux.cfg is a folder. – Sameer Feb 20 '11 at 13:53
  • 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. – hookenz Jul 18 '14 at 04:10

4 Answers4

2

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 ;)

Paweł Brodacki
  • 6,511
  • 20
  • 23
  • The execute bit is NOT a must have for directories - please read 'man ls'. –  Feb 10 '12 at 20:07
0

There may be more information logged in the file /var/log/messages. Have you looked there? This sounds like a permissions problem. Make sure that the user that tftpd-hpa is running as can read the file /tftpboot/pxelinux.cfg/default. Also, make sure that file can't be written to by other users. You can check the permissions with ls; the beginning of the output should look like

$ ls -l /tftpboot/pxelinux.cfg/default
-rw-rw-r--
Khaled
  • 36,533
  • 8
  • 72
  • 99
sciurus
  • 12,678
  • 2
  • 31
  • 49
0

You need to make a softlink to a pxeconfig file in /tftpboot/pxelinux.cfg. The soft link should be named 0A64491E. The soft link should point to a file and in the case at our datacenter it points to ../profiles (it doesn't matter where the config file is)

An example of a simple install file for our centos6 pxeconfig is

DEFAULT INSTALL
LABEL INSTALL
KERNEL centos6/x86_64/vmlinuz
APPEND utf8 load_ramdisk=1 root=/dev/ram nofb ks=http://servername/mrepo/kickstarts/centos6.ks ksdevice=eth0 initrd=centos6
/x86_64/initrd.img console=ttyS1,115200

Some important bits here are making sure you are then outputting to the correct console session. If you don't get this right you will only getting a blinking cursor or just a .

Additionally setting the baud rate (that is 115200 in the case above)helps to get correct if you are using console to connect to the server over a management network.

Wilshire
  • 538
  • 6
  • 19
0

I was having the same issue, and disabling SELinux resolved it. I'm running CentOS 6.5, and using DRBL/Clonezilla.

Steps:

  1. Open /etc/selinux/config
  2. Change SELINUX=enforcing to SELINUX=disabled
  3. Reboot
zymhan
  • 1,371
  • 1
  • 17
  • 30
  • 2
    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: https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security-Enhanced_Linux/ . Having said this all, the OP does not say he uses Centos – natxo asenjo Jan 03 '14 at 14:44