PXE boot with TFTP

Erik Norgaard norgaard at locolomo.org
Tue Nov 23 05:16:14 PST 2004


Hi,

I am trying to set up a jumpstart server using only dhcp/tftp/ftp to 
install. My tftp root is /var/tftp where I have created the boot 
directory containing:

-rwxr-xr-x  1 root  wheel       512 Nov 21 23:37 boot0
-rwxr-xr-x  1 root  wheel       512 Nov 21 23:38 boot1
-rw-r--r--  1 root  wheel      7680 Nov 21 23:38 boot2
-r--r--r--  1 root  wheel      1982 Nov 22 12:14 device.hints
drwxr-xr-x  2 root  wheel       512 Nov 22 00:05 kernel
-r-xr-xr-x  1 root  wheel    249856 Nov 23 13:19 loader
-rw-r--r--  1 root  wheel       203 Nov 23 13:20 loader.rc
-rw-r--r--  1 root  wheel  33554432 Nov 23 11:56 mfsroot
drwxr-xr-x  2 root  wheel       512 Nov 23 13:26 modules
-rw-r--r--  1 root  wheel    251904 Nov 23 13:19 pxeboot

With loader.rc: ==============
# loader.rc: jumpstart

echo Loading Kernel...
load boot/kernel/kernel
load boot/kernel/acpi.ko

echo Booting...
echo \007\007

load -t mfs_root /boot/mfsroot
set vfs.root.mountfrom=ufs:/dev/md0c"

boot
==============================

Things goes well till the booting client tries to load the kernel:

client output=================
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 is 1.01
Console: internal video/keyboard
BIOS drive A: is disk0
BIOS drive C: is disk1

PXE version 2.1, real mode entry point @9e6e:00f6
BIOS 640kB/244672kB available memory

FreeBSD/i386 bootstrap loader, Revision 1.1
(root at charm, Tue Nov 23 13:18:23 CET 2004)
pxe_open: server addr: 192.168.0.32
pxe_open: server path: /var/tftp
pxe_open: gateway ip:  192.168.0.1
\
can't load 'kernel'

Type '?' for a list of commands, 'help' for more detailed help.
OK
==============================

I don't know where it tries to get the kernel form, I have tried to 
specify various paths, absolute and relative in the dhcpd.conf, 
currently "root-path 192.168.0.32:/var/tftp", same result. however, I 
can then load the kernel manually:

OK load boot/kernel/kernel

this fetches the kernel with tftp as it should. In fact, I can manually 
issue all the commands in loader.rc - (it then hangs on "boot" but this 
seems to be another story).

Sniffing the network interface, it appears that loader.rc is never 
loaded (snort -vCde -i sis0 host 192.168.0.128):

=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

11/23-14:01:19.697135 0:40:63:D4:89:72 -> 0:C:6E:D:91:BB type:0x800 len:0x48
192.168.0.128:2626 -> 192.168.0.32:69 UDP TTL:20 TOS:0x0 ID:504 IpLen:20 
DgmLen:58
Len: 30
../boot/loader.rc.split.octet.
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

11/23-14:01:19.773480 0:C:6E:D:91:BB -> 0:40:63:D4:89:72 type:0x800 len:0x3F
192.168.0.32:60403 -> 192.168.0.128:2626 UDP TTL:64 TOS:0x0 ID:39618 
IpLen:20 DgmLen:49
Len: 21
....Access violation.
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

11/23-14:01:19.773761 0:40:63:D4:89:72 -> 0:C:6E:D:91:BB type:0x800 len:0x4B
192.168.0.128:2627 -> 192.168.0.32:69 UDP TTL:20 TOS:0x0 ID:505 IpLen:20 
DgmLen:61
Len: 33
../boot/loader.rc.gz.split.octet.
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

11/23-14:01:19.780476 0:C:6E:D:91:BB -> 0:40:63:D4:89:72 type:0x800 len:0x3F
192.168.0.32:60506 -> 192.168.0.128:2627 UDP TTL:64 TOS:0x0 ID:39619 
IpLen:20 DgmLen:49
Len: 21
....Access violation.
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

11/23-14:01:19.780635 0:40:63:D4:89:72 -> 0:C:6E:D:91:BB type:0x800 len:0x45
192.168.0.128:2627 -> 192.168.0.32:69 UDP TTL:20 TOS:0x0 ID:506 IpLen:20 
DgmLen:55
Len: 27
../boot/loader.rc.gz.octet.
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

11/23-14:01:19.791782 0:C:6E:D:91:BB -> 0:40:63:D4:89:72 type:0x800 len:0x3F
192.168.0.32:50585 -> 192.168.0.128:2627 UDP TTL:64 TOS:0x0 ID:39620 
IpLen:20 DgmLen:49
Len: 21
....Access violation.
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

11/23-14:01:19.791939 0:40:63:D4:89:72 -> 0:C:6E:D:91:BB type:0x800 len:0x42
192.168.0.128:2627 -> 192.168.0.32:69 UDP TTL:20 TOS:0x0 ID:507 IpLen:20 
DgmLen:52
Len: 24
../boot/loader.rc.octet.
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

11/23-14:01:19.799377 0:C:6E:D:91:BB -> 0:40:63:D4:89:72 type:0x800 len:0x3F
192.168.0.32:54534 -> 192.168.0.128:2627 UDP TTL:64 TOS:0x0 ID:39621 
IpLen:20 DgmLen:49
Len: 21
....Access violation.
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

Clearly it tries to fetch loader.rc in various paths, but I don't know 
which path on my server it is searching - all files in /var/tftp are 
world readable.

Any help would be appreciated, thanks!

Erik

-- 
Ph: +34.666334818                                  web: www.locolomo.org
S/MIME Certificate: http://www.locolomo.org/crt/2004071206.crt
Subject ID:  A9:76:7A:ED:06:95:2B:8D:48:97:CE:F2:3F:42:C8:F2:22:DE:4C:B9
Fingerprint: 4A:E8:63:38:46:F6:9A:5D:B4:DC:29:41:3F:62:D3:0A:73:25:67:C2


More information about the freebsd-questions mailing list