30.2.2. Configuring PXE Boot for EFI

  1. If tftp-server is not yet installed, run yum install tftp-server.
  2. In the tftp-server config file at /etc/xinetd.d/tftp, change the disable parameter from yes to no.
  3. Create a directory path within tftpboot for the EFI boot images, and then copy them from your boot directory:
    mkdir /var/lib/tftpboot/pxelinux
    cp /boot/efi/EFI/redhat/grub.efi /var/lib/tftpboot/pxelinux/bootx64.efi
  4. Configure your DHCP server to use the EFI boot images packaged with GRUB. (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 PXE;
      option PXE.mtftp-ip    code 1 = ip-address;
      option PXE.mtftp-cport code 2 = unsigned integer 16;
      option PXE.mtftp-sport code 3 = unsigned integer 16;
      option PXE.mtftp-tmout code 4 = unsigned integer 8;
      option PXE.mtftp-delay code 5 = unsigned integer 8;
      option arch code 93 = unsigned integer 16; # RFC4578
      subnet netmask {
              option routers;
              class "pxeclients" {
                      match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
                      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;
  5. Add a config file to /var/lib/tftpboot/pxelinux. The file should either be named efidefault or named after the IP address. For example, if your machine's IP address is, the filename would be 0A000001.
    A sample config file at /var/lib/tftpboot/pxelinux/efidefault might look like:
    title RHEL
            root (nd)
            kernel /rawhide-x86_64/vmlinuz
            initrd /rawhide-x86_64/initrd.img
    For instructions on how to specify the installation source, refer to Section 7.1.3, “Additional Boot Options”
  6. Copy the splash image into your tftp root directory:
    cp /boot/grub/splash.xpm.gz /var/lib/tftpboot/pxelinux/splash.xpm.gz
  7. 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/
  8. Reboot the system, and select the network device as your boot device when prompted.