:: Documentation

PXE server setup

Some hints to setup a PXE server to be used with

Required software:

- DHCP server ( Slackware-10.1: dhcp-3.0.1-i486-1 ) - TFTP server ( Slackware-10.1: inetd-1.79s-i486-7 ) - syslinux ( Slackware-10.1: syslinux-2.13-i486-1 )

DHCPD Configuration:

/etc/dhcpd.conf allow booting; allow bootp; # Standard configuration directives... option domain-name "foo.net"; option subnet-mask; option broadcast-address; option domain-name-servers; option routers; ddns-update-style none; allow unknown-clients; subnet netmask { range; next-server; <------- TFTP SERVER IP ADDRESS filename "/tftpboot/pxelinux.0"; }

TFTP Server configuration:

  • /etc/inetd.conf # Tftp service is provided primarily for booting. Most sites # run this only on machines acting as "boot servers." tftp dgram udp wait root /usr/sbin/tcpd in.tftpd -c /tftpboot
  • Tftp directory tree [dave@nightmare ~]$ls /tftpboot bzImage pxelinux.0 pxelinux.cfg test.rootdisk.gz - bzImage is the linux kernel booted from pxe client - pxelinux.0 is the pxe loader (see dhcpd config file) - sample.gz is the initrd image created with MakeInitrd.sh - pxelinux.cfg is a directory, which contains per-host config files: default is loaded if no specific HW address matches.
  • default pxe config file [dave@nightmare ~]$cat /tftpboot/pxelinux.cfg/default default Kickstart prompt 0 label Kickstart kernel bzImage append initrd=sample.gz devfs=nomount load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=16384 rw root=/dev/ram This is like a syslinux config file: loads the kernel 'bzImage' then sample.gz as initrd (root image). The root image is created, as usual, by MakeInitrd.sh.

    PXELINUX info:

    You can find (Slackware 10.1) pxelinux.0 (the pxe loader) on /usr/share/syslinux/pxelinux.0 Hope that helps!!