Fedora Core 4 PXE Boot Installation
The PXE environment allows a PC with a PXE capable network interface card to configure the interface with an IP and request a boot image via tftp. TFTP (Trivial File Transfer Protocol) is as its name suggests is a very simple version of FTP with very few options, only requesting or sending a file and does not support authentication.
The PXE sequence goes something like this:
Client Server
Request IP via DHCP ----------->DHCP Server
<---------- Assign IP, netmask,
IP address of tftp
server and boot image
Request boot image via tftp ----------->TFTP Server
Load image and boot <---------- Send boot image
packages needed:
tftp-server
dhcpd
syslinux
httpd*
vsftp*
nfs*
*need at least one of three
dhcp setup:
host hostname {
hardware ethernet 00:00:00:00:00:00; <==Enter client's mac address
fixed-address xxx.xxx.xxx.xxx; <==Enter client's ip address
option host-name "hostname";
next-server xxx.xxx.xxx.xxx; <==Enter the ip of tftp server
filename "pxelinux.0"
}
tftp setup:
install tftp-server
edit /etc/xinet.d/tftp disable=yes => disable=no
chkconfig tftp on
/etc/init.d/xinetd restart
copy fc4 images isolinux/ vmlinuz initrd.img => /tftpboot
copy pxe boot image /usr/lib/syslinux/pxelinux.0 => /tftpboot
First, it will search for the config file using the hardware type (using its ARP type code) and address, all in lower case hexadecimal with dash separators; for example, for an Ethernet (ARP type 1) with address 88:99:AA:BB:CC:DD it would search for the filename 01-88-99-aa-bb-cc-dd.
Next, it will search for the config file using its own IP address in upper case hexadecimal, e.g. 192.0.2.91 -> C000025B (you can use the included progam gethostip to compute the hexadecimal IP address for any host.)
If that file is not found, it will remove one hex digit and try again. Ultimately, it will try looking for a file named default (in lower case). As an example, if the boot file name is /mybootdir/pxelinux.0, the Ethernet MAC address is 88:99:AA:BB:CC:DD and the IP address 192.0.2.91, it will try:
/mybootdir/pxelinux.cfg/01-88-99-aa-bb-cc-dd
/mybootdir/pxelinux.cfg/C000025B
/mybootdir/pxelinux.cfg/C000025
/mybootdir/pxelinux.cfg/C00002
/mybootdir/pxelinux.cfg/C0000
/mybootdir/pxelinux.cfg/C000
/mybootdir/pxelinux.cfg/C00
/mybootdir/pxelinux.cfg/C0
/mybootdir/pxelinux.cfg/C
/mybootdir/pxelinux.cfg/default
... in that order.
Note that all filename references are relative to the directory pxelinux.0 lives in. PXELINUX generally requires that filenames (including any relative path) are 127 characters or shorter in length.
http://syslinux.zytor.com/pxe.php