This is an old revision of the document!
OS Install: PXE Boot
General Information
In order to install an OS via PXE boot, a TFTP and DHCP server are required.
Using PXE allows for clients to begin a network installation without any net-install ISO.
Checklist
- Distro: Enterprise Linux 7
- Installation Server Created (NFS/HTTP/FTP) that is hosting the install DVD and kickstart file
TFTP Server
- Install the required packages
yum install tftp-server xinetd
- Allow TFTP access (set disable = no)
vim /etc/xinetd.d/tftp service tftp { ....some other variables... disable = no ....some other variables... }
- Start and Enable xinetd
systemctl start xinetd systemctl enable xinetd
- Allow through firewall (if enabled)
firewall-cmd --permanent --add-service=tftp firewall-cmd --reload
DHCP Server
- Install required package
yum install dhcp
- Edit DHCP config and customize per your network
vim /etc/dhcp/dhcpd.conf subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.254 ; range 192.168.1.240 192.168.1.250 ; next-server 192.168.1.150 ; filename "pxelinux/pxelinux.0" ; }
- subnet ⇒ specify the network
- netmask ⇒ mask for your network
- option routers ⇒ gateway for the network
- range ⇒ start and ending IP to hand out via DHCP
- next-server ⇒ IP of the TFTP server
- filename ⇒ file that should be offered to systems doing PXE boot (relative to the TFTP server's root)
- Start and enable DHCP
systemctl start dhcp systemctl enable dhcp
Create PXE Content
Now that both required services are setup, it is time to create the PXE boot content to be handed out over TFTP.
- Install a required package
yum install syslinux
- Create the PXE Linux directory structure
mkdir -p /var/lib/tftpboot/pxelinux/pxelinux.cfg
- Copy the pxelinux.0 data file
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux/
- Create the PXE Linux default config file
vim /var/lib/tftpboot/pxelinux/pxelinux.cfg/default default CentOS7 prompt 1 timeout 60 display boot.msg label CentOS7 menu label ^Install CentOS 7.2 menu default kernel vmlinuz append initrd=initrd.img
- To include a splash image when doing PXE, copy the image from the local system
cp /boot/grub/splash.xpm.gz /var/lib/tftpboot/pxelinux/
- Copy the files (images/pxeboot/vmlinuz and initrd.img) from the install disk to /var/lib/tftpboot/pxelinux/
TODO
- Restart dhcpd and xinetd
systemctl restart dhcpd systemctl restart xinetd
The system is now ready to accept incoming PXE boot requests.