Netboot

This is a simple description how to boot over a network using kernel on the remote server.

Server side configuration

To proivde net boot capabilities, your server need tftp server, loader, dhcp server and kernel for the node.

tftp server

Install tftpd-hpa - this is a tftp server derived from OpenBSD tftp with some extra options added. It is useful because the PXE protocol has some non-standard requirements for tftp.

tftpd starts inside the inetd - internet "superserver" by default, so set the root path inside the inetd.conf file. In this example we use /srv/tftp.

  mkdir /srv/tftp

After restariting the superserver (on debian probably /etc/init.d/openbsd-inetd ) run:

  nmap -sU localhost

to check if it is working.

pxelinux loader

Install syslinux - to get the pxelinux executable. Create a directory structure inside the tftp root:

  mkdir /srv/tftp/boot
  mkdir /srv/tftp/boot/pxelinux.cfg

Copy the loader:

  cp /usr/lib/syslinux/pxelinux.0 /srv/tftp/boot/pxelinux.bin

Assume your node have HWaddr 00:13:8F:FD:71:A1. With this, the directory structure should looks like:


/srv/tftp/boot/pxelinux.bin
/srv/tftp/boot/pxelinux.cfg/01-00-13-8f-fd-71-a1
/srv/tftp/boot/pxelinux.cfg/default
/srv/tftp/boot/vmlinuz
/srv/tftp/boot/initrd.img

Examples

Example config files inside the pxelinux.cfg:

listing for config file 01-00-13-8f-fd-71-a1

Linux boot

  PROMPT 1
  LABEL linux
    KERNEL vmlinuz
    APPEND initrd=initrd.img vga=0x317 
  DEFAULT linux

Fai boot

   label fai
     kernel vmlinuz
     append ip=dhcp devfs=nomount vga=0x317 root=/dev/nfs nfsroot=srv/fai/nfsroot FAI_FLAGS=[...] FAI_ACTION=install
   default fai

DOS boot

The DOS kernel can be obtained by installing syslinux an copy /usr/lib/syslinux/memdisk into the tftp direcotry where you store the kernels. Organize a DOS-image, e.g. from

http://www.freedos.org/

and append it as an initrd.

The config file reads

 default dos 
 label dos
   kernel Kernel/Dos/memdisk
   append ip=dhcp initrd=Kernel/Dos/fdbasecd.img

dhcp server

dhcpd - DHCP server

Read dhcp

dhcpd.conf example: (some minor changes --> discussion)

  subnet 192.168.0.0 netmask 255.255.0.0
  {
    ignore unknown-clients;
    host node2 {
      hardware ethernet 00:30:05:C4:E6:73;
      fixed-address 192.168.0.2;
    }
  #	option routers 192.168.0.1;
    next-server 192.168.0.1;
    filename "boot/pxelinux.bin";
  }

And read the man pages.

DocumentationForm edit

Title How to boot over a network using kernel on a remote server
Description This is a simple description how to boot over a network using kernel on a remote server.
Tags boot kernel remote server
Category Admin
Topic revision: r4 - 10 Feb 2012, ArthurVarkentin
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback