[GLLUG] PXE Install

Steve Nelson sanelson at gmail.com
Mon May 9 21:42:26 UTC 2005


Hello Chaps,

Apologies in advance if this gets long - I'm trying to give as much
useful info as I can while its still fresh in my brain.  I confess to
being out of ideas, so I'm hoping I can borrow a few!

I'm trying to set up a boot server to allow pxe-booting a number of
old machines with neither floppy nor cdrom, but with pxe-bootable nics
lying around.

The server is a debian/sarge machine, on which I have installed the
isc dhcp server and tftpd-hpa.  I have untarred the netboot.tar.gz
image from the debian-installer repository and placed this into
/tftpboot.

There are a couple of clients I've tested, but the main machine I have
been testing has an Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 05).
 This is the machine from which I am typing this email now - so I can
assure you the NIC works and that there are no cabling problems.

On the server I've set up dhcpd.conf as follows:

option domain-name "sheep.home";
default-lease-time 600;
max-lease-time 7200;
allow booting;
allow bootp;
 
subnet 192.168.1.0 netmask 255.255.255.0 {
        range 192.168.1.20 192.168.1.100;
        option broadcast-address 192.168.1.255;
        option routers 192.168.1.1;
        option domain-name-servers 192.168.1.1;
}
  
group {
        next-server 192.168.1.3;
        host tftpclient {
                hardware ethernet 00:08:C7:F7:68:81;
                #hardware ethernet 00:08:C7:9A:8D:FE;
                filename "/tftpboot/pxelinux.0";
        }
}

This appears to work fine - all clients receive an IP address and get
to the TFTP stage.  This is where things go wrong.  The client reaches
the TFTP stage, but never gets any further, eventually giving a
timeout error message.

I've tried variations on the filename (serving from /var/lib/tftpboot
as per the orginal config and from the above, ensuring inetd and dhcpd
match)

Permissions on /tftpboot are 755.

With tftpd-hpa I have tried various inetd.conf entries, including:

tftp           dgram   udp     wait    root  /usr/sbin/tcpd   
in.tftpd  -vvvvvv /tftpboot
tftp           dgram   udp     wait    root  /usr/sbin/in.tftpd
/usr/sbin/in.tftpd  /tftpboot
tftp dgram udp wait root /usr/sbin/in.tftpd -s /tftpboot -r blksize

and variations on the theme, including -l (which the D-I manual said
may cause tftpd to log, but appeared to make it listen locally, and
thus throw 'Cannot bind to local socket: Address already in use'
errors).

netstat -an | fgrep -w 69 always shows inetd listening, and lsof -i
:69 shows when the in.tftpd has an open connection to the client.

>From syslog I can determine that the file is at least attempted to be served:

May  9 21:34:49 kotov in.tftpd[26419]: RRQ from 192.168.1.21 filename
/tftpboot/pxelinux.0

However, ultimately it times out.

I can get /tftpboot/pxelinux.0 using a tftp client from any other
machine on the network.

I then tried using atftpd on a different server, and changing the next
server directive in dhcpd.conf

This gave more useful log messages:

May  9 22:08:00 najdorf atftpd[25622]: Serving /tftpboot/pxelinux.0 to
192.168.1.22:2073
May  9 22:08:00 najdorf atftpd[25620]: timeout: retrying...
May  9 22:08:01 najdorf atftpd[25619]: timeout: retrying...
May  9 22:08:03 najdorf atftpd[25621]: timeout: retrying...
May  9 22:08:05 najdorf atftpd[25622]: timeout: retrying...

I tried appending the --no-timeout setting in inetd.conf and changing
the timeout setting from 300 to 30000!  All to no avail.

I don't think there is nothing wrong with this NIC as I have done a
PXE install using it before.

I also have tested everying above using a different client with a
different NIC, and get the same results.

The only thing I've not done so far is a tcpdump on the server
interface to see what traffic is passing.  I might try that in a
minute.

So - I'm stuck!  Any ideas?

Steve
-- 
Gllug mailing list  -  Gllug at gllug.org.uk
http://lists.gllug.org.uk/mailman/listinfo/gllug




More information about the GLLUG mailing list