PXE Boot Server Configuration Using Linux
PXE is an acronym for Pre-Boot Execution Environment. To know what it does refer to the Pre-Boot Execution Environment page.
This document is a guide to configuration of a PXE boot server using Linux. It will be assumed that you already have an existing network with a Linux server that is responsible for assignment of DHCP addressing for your workstations. There are other guides to cover the configuration of a DHCP server.
You will need to install whatever packages are appropriate for your distribution to have PXE and TFTP.
- Your DHCP server must also be your PXE boot server.
Contents
Redhat / Trustix Guide
Manual Configuration
1. You need to obtain the RPM package for PXE and the RPM package for TFTP and install them on the server.
2. Activate TFTP in xinetd
- disable=yes to disable=no in /etc/xinetd.d/tftp
- service xinetd restart
3. Get OS ready in the tftpboot directory
- One way to do this is to create a folder and copy the OS install files into the folder. This is probably the most common way, however, there is an alternative that is pretty slick. If the media the OS install files come from are on CD, you can make an ISO image of the CD and mount that to the folder for PXE network installs.
4. Put the pxe boot linux kernel in the tftpboot directory
5. Configure /tftpboot/pxelinux.cfg
6. Create default configuration /tftpboot/pxelinux.cfg/default
7. For the client workstation to actually read the OS installation packages from the server, you may use HTTP, NFS, or SMB.
- The PXE installation formula may be described as a combination of the following necessary packages:
- PXE, TFTP, and HTTPD
- PXE, TFTP, and NFS
- PXE, TFTP, and Samba
HTTPD
After you copy the contents of the distribution or operating system media into a folder on the server drive you need to configure the httpd.conf file to reflect that server location. Edit the httpd.conf file (typically located in /etc/httpd/conf/httpd.conf)
<Directory /tftpboot/myOS> Options Indexes AllowOverride None </Directory> Alias /linux /tftpboot/myOS
NFS
This is the preferred option to use.
Samba
You will want to make sure you have Samba version 3 or above.
Example configuration for samba:
[OSINSTALL] path = /tftpboot/myOS browsable = true read only = No guest ok = Yes
You must set null passwords = true in smb.conf.
You also need to modify server name and path in SetupSourceDevice option of winnt.sif file.
Redhat Config Utility
Use the GUI Network Booting Tool on the Redhat server in XWindows.
If you do not have X installed, you can also use the console utility. The pxeos command line utility, which is part of the redhat-config-netboot package, can be used to configure the tftp server files.
pxeos -a -i "<description>" -p <NFS|HTTP|FTP> -D 0 -s client.example.com -L <net-location> <os-identifer>
Debian / (K)ubantu / Knoppix Guide
OpenWRT / WhiteRussian Guide