pxe boot fails with message: no DEFAULT or UI configuration directive found

22,412

Solution 1

for "no default or ui configuration directive found" try change

from  KERNEL vmlinuz-2.6.35-25-generic-pae
      APPEND ....optopns...
to    DEFAULT vmlinuz-2.6.35-25-generic-pae ....options...

or use UI menu. it help me with ubuntu 10.10 pxeboot.0

Solution 2

You are missing the default in DEFAULT file - in your case the /var/lib/tftpboot/pxelinux.cfg should have

"DEFAULT linux"

line at the beginning.

Solution 3

Be careful to use correct versions of menu.c32 or vesamenu.c32. Otherwise you'll get the error message: "Menu.c32 not a com32r file". The correct versions of those files can be found from /boot directory. Also, if the parent system is 64 bit you'll need the 32 bit libraries installed. At the above example "default menu.c32" doesn't work anymore, it should stay: UI menu.c32 or UI vesamenu.c32.

Share:
22,412

Related videos on Youtube

spockaroo
Author by

spockaroo

Updated on September 17, 2022

Comments

  • spockaroo
    spockaroo almost 2 years

    I am trying to pxe-boot a machine (client), and in the process I am trying to setup a tftp server that this machine can boot off.

    On the server, which runs Ubuntu 10.10, I have setup dhcp, dns, nfs, and tftp-hpa servers. All the servers/deamons start fine. I tested the tftp server by using a tftp client and downloading a file that the server directory hosts.

    My /etc/xinet.d/tftp looks like this

    service tftp
    {
        disable                 = no
        socket_type             = dgram
        wait                    = yes
        user                    = nobody
        server                  = /usr/sbin/in.tftpd
        server_args             = -v -s /var/lib/tftpboot
        only_from   = 10.1.0.0/24
        interface   = 10.1.0.1
    }
    

    My /etc/default/tftpd-hpa looks like this

    RUN_DAEMON="yes"
    OPTIONS="-l -s /var/lib/tftpboot"
    TFTP_USERNAME="tftp"
    TFTP_DIRECTORY="/var/lib/tftpboot"
    TFTP_ADDRESS="0.0.0.0:69"
    TFTP_OPTIONS="--secure"
    

    My /var/lib/tftpboot/ directory looks like this

     initrd.img-2.6.35-25-generic-pae
     vmlinuz-2.6.35-25-generic-pae
     pxelinux.0
     pxelinux.cfg
       -- default
    

    I did

     sudo chmod 644 /var/lib/tftpboot/pxelinux.cfg/default
     chmod 755 /var/lib/tftpboot/initrd.img-2.6.35-25-generic-pae
     chmod 755 /var/lib/tftpboot/vmlinuz-2.6.35-25-generic-pae
    

    /var/lib/tftpboot/pxelinux.cfg has the following contents

     SERIAL 0 19200 0
     LABEL linux
     KERNEL vmlinuz-2.6.35-25-generic-pae
     APPEND root=/dev/nfs initrd=initrd.img-2.6.35-25-generic-pae nfsroot=10.1.0.1:/nfsroot ip=dhcp console=ttyS0,19200n8 rw
    

    I copied /var/lib/tftpboot/pxelinux.0 from /usr/lib/syslinux/ after installing the package syslinux-common.

    Also just for completeness, /etc/dhcp3/dhcpd.conf the following lines (relevant to this interface)

    subnet 10.1.0.0 netmask 255.255.255.0 {
      range 10.1.0.100 10.1.0.240;
      option routers 10.1.0.1;
      option broadcast-address 10.1.0.255;
      option domain-name-servers 10.1.0.1;
      filename "pxelinux.0";
    }
    

    When I boot the client machine, and watch the output over the serial port, I notice that the client requests an ip address from the server and gets it. Then I see TFTP being displayed - indicating that it is trying to connect to the TFTP server. This succeeds, and I see TFTP.|, which return immediately displaying the following message

    PXELINUX 4.01 debian-20100714  Copyright (C) 1994-2010 H. Peter Anvin et al
    No DEFAULT or UI configuration directive found!
    boot: 
    

    /var/log/syslog shows

    Feb 20 15:24:05 ch in.tftpd[2821]: tftp: client does not accept options
    

    What option is it talking about in the syslog? I assume it is referring to OPTIONS or TFTP_OPTIONS, but what am I doing wrong?

    • Admin
      Admin over 13 years
      Turns out some more googling pointed to the fact that "tftp: client does not accept options" is a benign message (syslinux.zytor.com/archives/2003-June/002093.html). So I just replaced my pxelinux.0 (which i got from the syslinux package) with a version of this file i had backed-up. pxe boot goes through now and i don't get the error message "no DEFAULT or UI configuration directive found" any more. I don't want to post an answer to my own question and select it as the best answer, so I guess the new question I have is - what is the correct way to get the right pxelinux.0 file? :)
    • Admin
      Admin over 13 years
      There is no right pxelinoux.0. The only thing to keep in mind is that you should not mix syslinux binaries from different versions (e.g. pxelinux.0 from an old package with menu.c32 from a newer one)