In the source directory type....
$ make clean
$ make install
Of course reading the instructions all the way through helps a bit.
The instructions with this
package are very verbose and in my humble opinion very clear. It seems that Gero Kuhlmann
spent some time documenting the installation procedure and without it I would have spent a
lot of time in limbo wondering what to do.
A directory for your diskless workstation to boot from must now be created.
directory used by tftp is called /tftpboot.
Underneath /tftpboot I created another directory called Xterm1/ which is where the
root file system for my diskless workstation will mount.
fig3.1 attempts to give an overview of this setup.
$ mknbi-linux -d rom -i rom -k zImage -o bootImage
This creates a file called bootImage which is a kernel that can be downloaded
over a network.
Place this network ready kernel in the boot image location and if you wish, rename the kernel to
represent the name of the diskless station. eg. mv bootImage station1.bootImage .
This way you can have many different boot images in the one location for different workstations.
One trap that I fell for, when setting up the nfs root directory, is
that I tried to use soft links to
my servers root directory. When the network accesses the nfs root directory, a soft link can not
access data above its root directory. Hard links do work, however it would mean that your
servers disk would have to be one large partition on one hard disk to link all the files required.
Not a good option if you have more than one partition/drive. So copying files is the only way to go.
I used Midnight commander to speed up the process a bit but I'm sure others can use cp and
other utilities with skills I have not developed yet .
The server also needs to know the hardware address of the network card
that is trying to call
for the network kernel. If you don't know this address don't panic. When the diskless
workstation first sends its requests across the network the hardware address is displayed on
its console. This is handy if you haven't got the original diagnostic disks that came with the
This hardware address and other useful information need to be placed in /etc/bootptab
My bootptab has the following entry
The basic rundown of this is that my boot image is located at /tftpboot
and is called
Xterm1.bootImage. I'm using ethenet and the hardware address of the diskless workstations
network card is 00001c802764 And once the kernel has booted mount the directory
/tftpboot/Xterm1 as the root directory. Of course once the root directory has been mounted then
init takes over and does whatever you have set up in your rc.d files.
needs to have tftp and bootps enabled. This should only be enabled if bootp is being used.
This tells the system what program to use when a bootp request is recieved.
I have two entries.
tftp dgram udp wait root /usr/sbin/tcpd in.tftpd
bootps dgram udp wait root /usr/sbin/tcpd bootpd
These entries use tcp wrappers and in some cases can cause problems.
If you do not wish to use tcp wrappers then you can have the following entries
tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd
bootps dgram udp wait root /usr/sbin/bootpd bootpd
But do check your manuals first. It may be different on your system.
Because bootp and tftp are being used, do make sure that they are included in your
The following entries should be in the services file.
bootps 67/udp # bootp server
bootpc 68/udp # bootp client
needs to have 192.168.2.21 as a host that it can communicate with.
My entry is
needs to allow the nfs directory to be mounted by the diskless workstation.
My entry is
/ftpboot/Xterm1 192.168.2.21 (rw,no_root_squash)
This allows the diskless workstation to read and write to the nfs disk
with full root user priveliges
O.K. that's the server. At this point in time the server should be waiting
for requests to send
kernel images over the network.
So another program is required. This program can be considered as a
bootstrap program for the
workstation. To make this bootstrap program cd /usr/src/netboot-X.X.X/netboot/ and type....
$ make bootrom
An interactive program is launched asking for details about the network
card that you wish to use,
the memory address that the card is assigned to and the interrupt that the card will use. When the
program finishes you should now have two files named image.flo and image.rom. These two files
effectively hold the same code except that image.flo can be placed onto a floppy disk and used as
a boot floppy.
To make the floppy type ...
$ dd if=image.flo of=/dev/fd0
insert the disk into the workstation (PC) and power it up.
In theory the machine boots up and you get straight to work on other projects :-)
Back in the real world.
If the server is not set up correctly then the workstation poll's the network for a reply. This is
your chance to write down the network cards hardware address. If the server is set up correctly
then the workstation will start loading a kernel and boot the system. If this is the case then it is
safe to take the image.rom file and burn it onto an eprom. The eprom can then be inserted onto
the network card and the workstation then does not require a floppy drive.
(A true diskless workstation.)
Using a floppy to boot from has its advantages in that desktops running other operating systems can be turned into a linux box just by rebooting with the boot floppy in its drive. All this without touching the built in hard drive.