NSLU2-Linux
view · edit · print · history

Using unslung as pxe boot server

A short description how to setup a diskless boot server on unslung with the standard packages. I used this setup to install fedora core 5.

Packages to install

To use diskless booting the slug has to provide the boot information and the files to load. Dhcp is used to give the booting device a ip number and the name of the file to load. tftp is used to load the file from the server.

In my setup i use the following packages

  • dhcp
  • tftp-hpa

dhcp configuration

Dhcp has to assign a ip number and tell the client which file it has to load to boot. I use the following configuration in "/opt/etc/dhcp.conf" to boot unknown clients with pxe boot:

 
ddns-update-style none;
ignore client-updates;

option ntp-servers              192.168.0.2;
option domain-name-servers      192.168.0.2, 192.168.0.10;

subnet 192.168.0.0 netmask 255.255.255.0 {

        option routers                  192.168.0.2;
        option subnet-mask              255.255.255.0;

        option domain-name              "lan";


        range dynamic-bootp 192.168.0.225 192.168.0.254;
        default-lease-time 21600;
        max-lease-time 43200;
        next-server 192.168.0.10;
        filename "pxelinux.0";
}

tftp configuration

Tftp has to deliver the files to the booting system. In the normal slug configuration tftp is started from "xinetd" with the configuration "/opt/etc/xinetd.conf":

 
service tftp
{
       flags            = REUSE
       socket_type      = dgram
       protocol         = udp
       instances        = 30
       wait             = yes
       user             = root
       server           = /opt/sbin/in.tftpd
       server_args      = -vt 30 -s /opt/tftpboot
       cps              = 100 2
       log_on_success   = HOST PID
       log_on_failure   = HOST
       disable          = no
}

pxe configuration

Pxe is a small bootloader which is used as secondary bootloader for network boots. You have to place the pxe executable in "/opt/tftpboot".

I use the "pxelinux.0" image from the redhat syslinux package with the configuration file "/opt/tftpboot/pxelinux.cfg/default":

 
default fc5
timeout 1000

label fc5
        kernel fc5.vmlinuz
        append load_ramdisk=1 initrd=fc5.initrd.img network

Of course i have placed the netboot images from "fc5" "vmlinuz" and "initrd.img" with a prefix in "/opt/tftpboot".

Trouble shooting tips

  1. Test your dhcp setup from a running system
  2. Test your tftpd setup with tftp
  3. Use ethereal to see what happens on your network
  4. Check the file permissions
  5. Read the log files (and use debugging setting)

Other documentation

There are many other websites about diskless booting and pxe:

  1. pxe howto(approve sites)
  2. Network Boot howto
  3. google

Exercises for the readers

  1. Make a setup for non pxe/intel systems
  2. Make a setup with rarp and bootparam to boot suns
view · edit · print · history · Last edited by marceln.
Originally by marceln.
Page last modified on May 27, 2006, at 11:28 AM