feel free to email me at

netboot - simple pxe-compatible dhcp and tftp server

With netboot you could easily bootstrap ubuntu or debian netinstaller. Or assign address to network device like ILO to configure it. Very simple in use and need almost zero configuration. I always hated dhcpd and tftp-ha.

Download: netboot.c
To build it: gcc -o netboot netboot.c

Github: http://github.com/ITikhonov/netboot

For looking who is asking for boot:

kef@flash:~$ sudo ./netboot
request 1 from 00-e0-91-02-9e-24 ()

If you are lucky it will show hostname in parens.

To boot it type:

kef@flash:~$ sudo ./netboot 192.168.0.255 192.168.0.1 192.168.0.55 00-e0-91-02-9e-24
mac pattern:00 e0 91 02 9e 24
request 1 from 00-e0-91-02-9e-24 ()
matched
request 3 from 00-e0-91-02-9e-24 ()
matched
rrq pxelinux.0
rrq pxelinux.0
end

192.168.0.255 is a broadcast address. (Bcast of ifconfig output)

192.168.0.1 is an address of this interface. (inet addr)

192.168.0.55 is an address offered to client.

00-e0-91-02-9e-24 is a mac address of client to bootstrap. You could type last few digits only and use any separator between them (except whitespace).

Bootfile is hardcoded to pxelinux.0. You could put any file under this name. It will use current directory for serving tftp requests.

Both dhcp and tftp implementations are simplified. For example, tftp can not serve more then one file at time. It has zero security, use it in safe environment only.

ChangeLog:

2008-05-02: show dhcp option 12 hostname if exists

2009-12-02: fixed hanging on nonimplemented options. Thanks to Ian Jeffray for spotting.

2010-01-19: now works on big-endian (ARM for example) cpus. Thanks to Costin Raducanu for testing.