Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Nov 2000 17:42:22 -0700
From:      "Matt Simerson" <mpsimerson@hostpro.com>
To:        "'freebsd-hackers@freebsd.org'" <freebsd-hackers@freebsd.org>
Subject:   PXE boot problem.
Message-ID:  <8D18712B2604D411A6BB009027F644980DD7A0@0SEA01EXSRV1>

next in thread | raw e-mail | index | archive | help
Hi Folks,

I've been trying hard to get a FreeBSD system booted via PXE with only
limited success. Maybe someone can have a look at my configs and shed a
little light on this for me.

Here's what happens at boot time:

   Intel UNDI, PXE-2.0 (build 067)
   Copyright (c) 1997, 1998 Intel Corporation

   DHCP MAC ADDR
   CLIENT ID: 192.168.254.133  MASK: 255.255.255.0  DHCP IP: 192.168.254.3
   GATEWAY IP: 192.168.254.1
   PXE Loader 1.00

   Building the boot loader arguments
   Relocating the loader and the BTX
   Starting the BTX loader

   BTX loader 1.00 BTX Version 1.01
   Console: internal video/keyboard
   BIOS drive A: is disk0

   PXE Version 2.1, real mode entry point @9db3:0106
   BIOS 639kB/392180kB available memory

   FreeBSD/i386 bootstrap loader, Revision 0.8
   (root@matt.domain.com, Thu Nov 30 11:45:41 PST 2000)
   pxe_open: server addr: 192.168.254.3
   pxe_open: server path: /tftpboot
   pxe_open: gateway ip: 192.168.254.1
   \
   Hit [Enter] to boot immediately, or any other key for command prompt.
   Booting [kernel]...
   \                     (if using pxeboot) 
   can't load 'kernel'   (if using pxeboot.tftp)



Because it'll be fetching the pxeboot file via tftp, it's set up as follows:

   # grep tftp /etc/inetd.conf
   tftp    dgram   udp     wait    nobody  /usr/libexec/tftpd      tftpd -l
/tftpboot

Since I've also tried to get it to work using TFTP for the kernel (as
opposed to NFS) I run inetd with the -R0 flag so that connections to inetd
services aren't rate limited.

   # ps ax | grep inetd
     1088  ??  Ss     0:00.01 inetd -wW -R0


My /tftpboot is set up as follows:

   # ll /tftpboot/*
   -rw-r--r--  1 root  wheel     2034 Nov 12 09:12 /tftpboot/install.cfg
   -r-xr-xr-x  1 root  wheel  2441176 Nov 30 11:54 /tftpboot/kernel
   -rw-r--r--  1 root  wheel  2949120 Nov 30 11:57 /tftpboot/mfsroot
   -rw-r--r--  1 root  wheel   165888 Nov 30 11:46 /tftpboot/pxeboot
   -rw-r--r--  1 root  wheel   165888 Nov 30 11:47 /tftpboot/pxeboot.tftp

   /tftpboot/boot:
   -r--r--r--  1 root  wheel     512 Nov 11 16:57 boot1
   -r--r--r--  1 root  wheel    7680 Nov 11 16:57 boot2
   -r-xr-xr-x  1 root  wheel  163840 Nov 11 16:57 loader
   -rw-r--r--  1 root  wheel     190 Nov 30 12:51 loader.rc
   -rw-r--r--  1 root  wheel     190 Nov 11 18:42 loader.rc.custom
   -rw-r--r--  1 root  wheel     136 Nov 30 12:21 loader.rc.flp

All the files in the boot directory are off the 4.1-stable boot floppy. The
loader.rc.custom is the same as the example given on Alfred's page and the
.flp one is off the floppy.

The pxeboot and pxeboot.tftp are exactly what you'd expect. The pxeboot file
is the default pxeboot with NFS support and the pxeboot.tftp was generated
by editing the /etc/make.conf file, setting the TFTP flag and recompiling
pxeboot. The files definately are different because I can change the DHCP
file to point to the other file and get different results at boot time.

NFS is configured as follows:

   matt# more /etc/exports
   /    -alldirs -ro
   /usr -alldirs -ro
   /cdrom -alldirs -maproot=root -ro

   matt# mount
   /dev/ad0s2a on / (ufs, NFS exported, local)
   /dev/ad0s2e on /usr (ufs, NFS exported, local)
   /dev/acd0c on /cdrom (cd9660, NFS exported, local, read-only)

The DHCP server is a FreeBSD 4.2-stable system (make buildworld on
11/29/00). The DHCP server is isc-dhcp 3.0b2pl9 and is configured as shown:

   option broadcast-address 192.168.254.255;
   option domain-name-servers 192.168.254.3;
   option domain-name "domain.com";
   option routers 192.168.254.1;
   option subnet-mask 255.255.255.0;
   option space PXE;
   option PXE.mtftp-ip     code 1 = ip-address;
   option PXE.mtftp-cport  code 2 = unsigned integer 16;
   option PXE.mtftp-sport  code 3 = unsigned integer 16;
   option PXE.mtftp-tmout  code 4 = unsigned integer 8;
   option PXE.mtftp-delay  code 5 = unsigned integer 8;
   server-name "DHCPserver"; 
   server-identifier 192.168.254.3;

   subnet 192.168.254.0 netmask 255.255.255.0 {
        option routers 192.168.254.1;
        option root-path "/tftpboot";
        filename "pxeboot";
   #    filename "pxeboot.tftp";    (compiled for TFTP boot support vs
standard NFS)
        range 192.168.254.32 192.168.254.99;
        }
   host c3.domain.com {
        hardware ethernet 00:02:b3:1c:c6:02;
        next-server 192.168.254.3;
        fixed-address 192.168.254.133;
        default-lease-time -1;
        class "pxeclients"
          { match if substring (option vendor-class-identifier, 0, 9) =
                "PXEClient";
          option vendor-class-identifier "PXEClient";
          option PXE.mtftp-ip 0.0.0.0;
          vendor-option-space PXE;
          }
        }


So, what am I missing?

Matt



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8D18712B2604D411A6BB009027F644980DD7A0>