Home and Links
 Your PC and Security
 Server NAS
 DVD making
 Raspberry Pi
 PIC projects
 Other projects
 Next >>

Setting up a home BOOTP Server

BOOTP setup

What's BOOTP / TFTP (or !PXE, or iPXE) ?'

BOOTP / TFTP (and !PXE / iPXE - which is DHCP/TFTP) is used to support Diskless Workstations that 'boot' themselves from a 'RIS Server' across your Network. This would (typically) be your SETI Compute Nodes (see Building a BOOTP Compute Node in my SETI Wall topic).

iPXE is an Open Source netboot utility that allows you to boot Windows from an iSCSI network 'drive'. iPXE itself can be booted by your existing motherboard / Ethernet card BOOTP / TFTP BIOS, HOWEVER it only works with an iSCSI Server .. which means paying for MS Server Software or building an Open Source NAS box.

NB. Building a bootable Operating System 'image' file on your network drive is not part of this topic - see above SETI page for an example of 'how to build a bootable OS'

What is a 'RIS Server' and do I need one ?

Remote Installation Services (RIS) is the 'Server side' support for remote booting 'clients' using BOOTP / TFTP. As usual, Microsoft limits this to a 'real' Server Operating system - however that's not all - even worst, Microsoft limits RIS to running on a Domain.

Needless to say, setting up a Domain is 'a step to far' for almost all home users (and even many small businesses), so even if you have paid for a 'real' Server Operating System you won't be able to use MS RIS

Fortunately, there is no reason why you should to 'go the Microsoft way' - instead you can build your own 'do it yourself' RIS 'server' on any 'normal' computer running in a Workgroup

For more information, see 'winner'.

Note - 'winner' shows how 'SysAngle' can be to used to manually start the install of a 'standard' Windows System. I use MS Sysprep on a nLite reduced Windows install package with an 'auto-answer' file instead

How do I provide RIS (BOOTP / TFTP) Services on my Workgroup 'Server' ?

A1. Use TFTPD32.

A2. An alternative is the Open Source BOOTP which is actually a combined Bootp / TFTP Service designed for remote boot support

What does TFTPD32/BOOTP Service need to know ?

The MAC address of each computer that will make a BOOTP 'request', the IP address to issue (to that computer) and the location/name of the 'boot image' file for that computer

How do I discover the target computer's MAC address (without loading Windows) ?

A1. For motherboard integrated Ethernet, turn on your computer, go into the BIOS and find the 'Network' options

A2. For a PCI NIC, locate the DOS mode 'configuration utility' (from the NIC manufacturers web site) and run that from a DOS Boot Floppy (or bootable CD)

In each case, the MAC address will be 12 characters (0-9, A-F) in 6 pairs, for example, "12-34-56-78-90-AB"

NB. For a computer running any Microsoft Operating system (including DOS), in a CMD Window ('Dos Box') type 'ipconfig /all' & you will see the MAC address

What needs to be in the TFTPD32 'Base directory' (share) ?

A1. First you need the first & second level boot files (which can be found on XP Server 2003 sp1, downloaded from MS site):-
startrom.n12 (which does not ask for confirmation) or startrom.com
(= renamed setupldr.exe)
A2. You need an 'answer file' - winnt.sif which will guide the windows installation
A3. You need your Operating System installer 'CD image' - winnt.iso

If you are using XP sp2 as the .iso image, then you will also need to replace the version of ramdisk.sys in the .iso with the ramdisk.sys from XP Server 2003 sp1

What's in the Winnt.sif ?

Enough to get the initial ./iso boot started

Note - the ISO file name must be DOS 8.3 format (long file names are not supported)

How does a workstation start to 'boot' from the network ?

A1. During power-on you press 'F12' and from the menu select 'network boot'** (alternatively, set 'network boot' as the 'top choice' in the motherboard BIOS 'boot order' list)

**If you don't see this, go into the Motherboard BIOS, the 'on board peripherals settings' / 'network setup' and set 'Network boot' to 'enable'

A2. When you select 'net boot', your Motherboard / NIC BIOS uses the BOOTP protocol to obtain a 'temporary' IP address and the name/location of the first bootstrap file. It then uses TFTP to fetch the bootstrap file and start it running. The bootstrap uses normal MS 'share' (SMB) to fetch the .iso file

A2a. In a 'standard' MS RIS (Remote Install), the bootstrap hands control over to the software you wish to install (i.e. the .iso) which then starts to install itself onto the local hard drive 'as normal' (i.e. in much the same way as if started from a CD).

A2b. In a 'Diskless Workstation' a RAM Disk will be created, the (pre-configured) Operating System image loaded directly into that and control passed to the RAM Disk

This is how Microsoft "Windows XP Embedded" (XPe) OEM remote booting system (which is essentially XP Pro that has been restricted to run a single OEM application, such as the 'hole in the wall' ATM machine software and ONLY sold to OEM's) works

What are the main problems ?

Drivers. During initial set-up, Windows uses the BIOS (INT 13) drivers to access the Hardware. After the 'Hardware detect' step, the install reboots and Windows itself starts running, at which point it switches to 'Virtual mode' 32 bit drivers. If your motherboard uses a 'non-standard' hard disk interface and Windows has not discovered this (or the installer does not have the required drivers) you will get the dreaded 'inaccessible boot device' error / crash

Fortunately, MS is aware of this possible problem and offers you the opportunity to load custom drivers during the initial BIOS part of the setup

Pre-configured bootable Windows operating system 'image' for a Diskless Workstation ?

This is the 'only' really hard bit of BOOTP / TFTP .. so, of course, I leave that to the reader :-)

For some 'hints' on how to start, I suggest my How to build a SETI BOOTP Node page

Click 'Next >>' in the Navigation Bar (left) takes you to my Star Tracking efforts, starting with a simple 'BarnDoor' design.

Next page :- Media Server - (set up)