30.2. Network Boot Configuration
The next step is to copy the files necessary to start the installation to the
tftp
server so they can be found when the client requests them. The tftp
server is usually the same server as the network server exporting the installation tree.
The PXE boot configuration procedure differs for BIOS and EFI. A separate yaboot configuration procedure is provided for Power Systems servers.
Note
Red Hat Satellite has the ability to automate the setup of a PXE server. See the Red Hat Satellite User Guide for more information.
30.2.1. Configuring PXE Boot for BIOS
- If tftp-server is not yet installed, run
yum install tftp-server
. - In the tftp-server config file at
/etc/xinetd.d/tftp
, change thedisabled
parameter fromyes
tono
. - Configure your DHCP server to use the boot images packaged with SYSLINUX. (If you do not have a DHCP server installed, refer to the DHCP Servers chapter in the Red Hat Enterprise Linux Deployment Guide.)A sample configuration in
/etc/dhcp/dhcpd.conf
might look like:option space pxelinux; option pxelinux.magic code 208 = string; option pxelinux.configfile code 209 = text; option pxelinux.pathprefix code 210 = text; option pxelinux.reboottime code 211 = unsigned integer 32; subnet 10.0.0.0 netmask 255.255.255.0 { option routers 10.0.0.254; range 10.0.0.2 10.0.0.253; class "pxeclients" { match if substring (option vendor-class-identifier, 0, 9) = "PXEClient"; next-server 10.0.0.1; if option arch = 00:06 { filename "pxelinux/bootia32.efi"; } else if option arch = 00:07 { filename "pxelinux/bootx64.efi"; } else { filename "pxelinux/pxelinux.0"; } } host example-ia32 { hardware ethernet XX:YY:ZZ:11:22:33; fixed-address 10.0.0.2; } }
- You now need the
pxelinux.0
file from the syslinux-nolinux package in the ISO image file. To access it, run the following commands as root:mount -t iso9660 /path_to_image/name_of_image.iso /mount_point -o loop,ro
cp -pr /mount_point/Packages/syslinux-nolinux-version-architecture.rpm /publicly_available_directory
umount /mount_point
Extract the package:rpm2cpio syslinux-nolinux-version-architecture.rpm | cpio -dimv
- Create a
pxelinux
directory withintftpboot
and copypxelinux.0
into it:mkdir /var/lib/tftpboot/pxelinux
cp publicly_available_directory/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux
- Create a
pxelinux.cfg
directory withinpxelinux
:mkdir /var/lib/tftpboot/pxelinux/pxelinux.cfg
- Add a config file to this directory. The file should either be named
default
or named after the IP address, converted into hexadecimal format without delimiters. For example, if your machine's IP address is 10.0.0.1, the filename would be0A000001
.A sample config file at/var/lib/tftpboot/pxelinux/pxelinux.cfg/default
might look like:default vesamenu.c32 prompt 1 timeout 600 display boot.msg label linux menu label ^Install or upgrade an existing system menu default kernel vmlinuz append initrd=initrd.img label vesa menu label Install system with ^basic video driver kernel vmlinuz append initrd=initrd.img xdriver=vesa nomodeset label rescue menu label ^Rescue installed system kernel vmlinuz append initrd=initrd.img rescue label local menu label Boot from ^local drive localboot 0xffff label memtest86 menu label ^Memory test kernel memtest append -
For instructions on how to specify the installation source, refer to Section 7.1.3, “Additional Boot Options” - Copy the splash image into your
tftp
root directory:cp /boot/grub/splash.xpm.gz /var/lib/tftpboot/pxelinux/splash.xpm.gz
- Copy the boot images into your
tftp
root directory:cp /path/to/x86_64/os/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/pxelinux/rhel6/
- Boot the client system, and select the network device as your boot device when prompted.