PXE Booting Datagrid Nodes

In this example I have assumed the following machines:
  • lcfg.gridpp.rl.ac.uk
    The LCFG server has both the XML profiles on its web server and exports a nfs root file system.
  • dhcp.gridpp.rl.ac.uk
    The DHCP server runs a dhcpd server.
  • pxe.gridpp.rl.ac.uk
    The PXE server runs a tftpd server.
In most cases this may well be the same machine but the distinction is worth making.

The RPMs that are needed are available from the install.gridpp.ac.uk server.

On pxe.gridpp you require the tftp-hpa-server package. If you installed your LCFG as per the install recipe then you should already have it. Do not use tftp-server as is the default on Redhat 6.2. It has some limitations.

Download tftpboot.tar.gz and untar it in your root directory. It contains the following three files.

/tftpboot/pxelinux.0
/tftpboot/vmlinuz
/tftpboot/pxelinux.cfg/
/tftpboot/pxelinux.cfg/default
The first of these pxelinux.0 is the file as distributed in the syslinux package. The syslinux page describes this method completely.

The second of these is the kernel extracted from LCFG boot floppies. It has various kernel modules compiled in including some network card drivers, IP-Config, DHCP, nfs and nfsroot. For kernel details in this case see nfsroot.txt

The final file default is the configuration file as below.

default linux

# Use gpplcfg for the install root.
label linux
   kernel vmlinuz
   ipappend 1
   append root=/dev/nfs \ 
     nfsroot=lcfg.gridpp.rl.ac.uk/ir62 init=/etc/dcsrc \
     nointeract=yes
As a minimum you must configure the nfsroot to point at your LCFG server that contains the root file system for the installation process. The last line should be one long line with no line breaks.

Configure tftp in the /etc/inetd.conf.
tftp dgram udp wait root /usr/sbin/tcpd in.tftpd
And reload inetd
# /sbin/service inet reload

You may also want to restrict access to your tftp server which has support for tcpwrappers. So edit /etc/hosts.allow and optionally /etc/hosts.deny.

The tftp portion is now complete.

For the dhcp configuration on dhcp.gridpp a minimal /etc/dhcpd.conf would be.

deny unknown-clients;
allow booting;
allow bootp;

subnet 130.246.184.0 netmask 255.255.252.0  {
 option domain-name "gridpp.rl.ac.uk";
 option time-servers 130.246.8.13;
 option routers 130.246.184.254;
 option domain-name-servers 130.246.8.13;
 host gppic06 {
    # Box 1
    hardware ethernet 00:03:47:97:c9:95;
    fixed-address 130.246.187.146;
    option root-path "/ir62";
    option option-151 "http://lcfg.gridpp.rl.ac.uk/";
    next-server pxe.gridpp.rl.ac.uk;
    filename "/tftpboot/pxelinux.0";
 }
}

Obviously you should change all the IP addresses and machine names in the above example.

Restart your dhcp server and now everything is complete at the server end.

On the client you have to stop the installed client rebooting, using PXE and reinstalling. One solution is to place the harddisk before PXE in the bios for boot options.

To then scrub the hard disk's master boot record use.

DOS>  fdisk /mbr
Linux> /sbin/lilo -u /dev/hda

Boot your client and it should grab a kernel from the PXE server and then boot exactly the same as if it were from the floppy disk.

Thanks to Chris Lester and Santanu Das at the Cavendish Lab for testing this process.

Steve Traylen, Testbed Install


Last modified Mon 21 April 2008 . View page history
Switch to HTTPS . Website Help . Print View . Built with GridSite 1.4.3
For more about GridPP please contact Neasan O'Neill