This page contains a shortened version of all of my OS Deployment articles. As I add articles, I’ll update this page to include only the specific instructions outlined in each article. Consider this the short-hand version, and a work-in-progress.
DHCP Server Configuration
Microsoft DHCP
- enable option 066 Boot Server Host Name in either the global scope or a specific scope, and set the value to your TFTP server’s IP address
- enable option 067 Bootfile Name in either the global scope or a specific scope, and set the value to pxelinux.0
ISC DHCPD
Add the following block to your dhcpd.conf file, again either in the global scope or a specific scope:
if substring ( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
next-server <TFTP server’s IP address>;
filename “pxelinux.0?;
}
TFTP Server Configuration
Details
- install tftpd-hpa (Ubuntu) or tftp-hpa (Gentoo), whichever gets you the tftp server for your Linux distribution
- as root, run
mkdir -p /var/lib/tftpboot/pxelinux.cfg/ && mkdir -p /var/lib/tftpboot/linux/
- create or edit
/etc/xinetd.d/tftp
if you’re using xinetd;/etc/conf.d/in.tftpd
if you’re running tftp-hpa on Gentoo; include the following command-line arguments for tftp-hpa:-s /var/lib/tftpboot
and-m /var/lib/tftpboot/pxelinux.cfg/remap
- create
/var/lib/tftpboot/pxelinux.cfg/remap
your favorite text editor, with the following content:rg \\ / rg ([A-Z]) \L\1
PXELinux
Details
- install syslinux, and copy
pxelinux.0
,memdisk
,menu.c32
andvesamenu.c32
to/var/lib/tftpboot/
- mount your Linux install media, and – for RedHat and derivatives like Fedora Core – copy
images/pxeboot/vmlinuz
andimages/pxeboot/initrd.gz
to/var/lib/tftpboot/linux/
- create
/var/lib/tftpboot/pxelinux.cfg/default
using your favorite text editor, with the following contents:default graphics timeout 100 prompt 1 label text kernel linux/vmlinuz append initrd=linux/initrd.gz text label graphics kernel linux/vmlinuz append initrd=linux/initrd.gz
- test your setup using a PXE client, and you should end up in Anaconda (the RedHat/Fedora Core installer)
Advanced PXELinux
Details
- Alter /var/lib/tftpboot/pxelinux.cfg/default to (changes are in bold):
default vesamenu.c32
prompt 0
timeout 100
menu title PXE Boot Menu
menu autoboot Starting graphics-mode Linux installer in # seconds
label graphics
menu default
menu label Linux Installer (Graphics Mode)
TEXT HELP
Installs Linux using the GUI installer
ENDTEXT
kernel linux/vmlinuz
append initrd=initrd.gz
label text
menu label Linux Installer (Text Mode)
TEXT HELP
Installs Linux using a text-mode installer
ENDTEXT
kernel linux/vmlinuz
append initrd=initrd.gz text
Automated Linux Installation
Details
- setup an NFS or HTTP server to host your installation sources
- copy the contents of the installation media to an NFS exported or HTTP-accessible directory on your NFS/HTTP server.
- use a PXE client to boot from the network
- select the Linux Installer from the PXE menu and press ENTER (either graphics or text mode – doesn’t matter much for this installation, so use whatever works with your PXE client)
- when prompted for the source location, choose appropriately: if you setup an HTTP export using Apache or IIS, you’ll want to choose HTTP; if you setup an NFS export, you’ll want to choose NFS
- when prompted, enter the server name and path to your installation sources
- install your distribution however you want (but keep in mind that the choices you make here will be applied to all future installations, so keep it simple and lean)
- once the installation is complete, copy
/root/anaconda.ks
to your installation source export directory, and rename the file so that it’s obvious what distribution you installed (e.g.mv anaconda.ks fc10x86.ks
) - modify
/var/lib/tftpboot/pxelinux.cfg/default
, addingks=<protocol>://<server name>/<filename>.ks
to the end of your Linux Installer lines, where<protocol>
is eithernfs
orhttp
depending on how you configured you installation source export location,<server name>
is the system containing your installation sources, and<filename>
is the path and filename of the renamedanaconda.ks
file from the previous step:default vesamenu.c32 prompt 0 timeout 100 menu title PXE Boot Menu menu autoboot Starting graphics-mode Linux installer in # seconds label graphics menu default menu label Linux Installer (Graphics Mode) TEXT HELP Installs Linux using the GUI installer ENDTEXT kernel linux/vmlinuz append initrd=initrd.gz ks=http://install/sources/server/and/path/anaconda.ks label text menu label Linux Installer (Text Mode) TEXT HELP Installs Linux using a text-mode installer ENDTEXT kernel linux/vmlinuz append initrd=initrd.gz text ks=http://install/sources/server/and/path/anaconda.ks