Select Your Language

Infrastructure and Management

Cloud Computing

Storage

Runtimes

Integration and Automation

  • Comments
  • RHEL PXE Installation with EFI

    Posted on

    Hi All,

    I am having issues with Configuring PXE server to Install RHEL 7 running on EFI. The Same server is configured to Install RHEL 7 with Legacy BIOS. Below is Network Configuration. I am using http to share the Images and is working file for clients running with BIOS.

    Target Network is                                           : 192.168.50.0/255.255.255.0
    
    Required DHCP range is                                  : 192.168.50.71  to 192.168.50.100
    
    TFTPSERVER/DHCP Server is                     : 192.168.50.11
    

    OS Versions : RHEL 7

    Output file for /etc/xinetd.d./tftp

    default: off

    description: The tftp server serves files using the trivial file transfer \

    protocol. The tftp protocol is often used to boot diskless \

    workstations, download configuration files to network-aware printers, \

    and to start the installation process for some operating systems.

    service tftp
    {
    socket_type = dgram
    protocol = udp
    wait = yes
    user = root
    server = /usr/sbin/in.tftpd
    server_args = -s /var/lib/tftpboot
    disable = no
    per_source = 11
    cps = 100 2
    flags = IPv4
    port = 69
    }

    OUTPUT of /etc/dhcp/dhcpd.conf

    more /etc/dhcp/dhcpd.conf
    #

    DHCP Server Configuration file.

    see /usr/share/doc/dhcp*/dhcpd.conf.example

    see dhcpd.conf(5) man page

    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

    Allow booting;
    Allow bootp;

    ddns-update-style none;

    authoritative;

    subnet 192.168.50.0 netmask 255.255.255.0 {
    range 192.168.50.50 192.168.50.70;
    option routers 192.168.50.1;
    }

    subnet 192.168.50.0 netmask 255.255.255.0 {
    range dynamic-bootp 192.168.50.71 192.168.50.100;
    option subnet-mask 255.255.255.0;
    option routers 192.168.50.2;
    option broadcast-address 192.168.50.255;

    next-server 192.168.50.72;

    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 "bootx64.efi";
    } else {
    filename "pxelinux.0";
    }
    }

    filename "pxelinux.0";

    }

    tftp root directory is /var/lib/tftproot

    I am attaching the directory structure for /var/lib/tftproot

    [root@prod1 tftpboot]# tree -A
    .
    ├── bootx64.efi
    ├── efidefault
    ├── images
    │ ├── initrd.img
    │ └── vmlinuz
    ├── menu.c32
    ├── pxelinux
    │ ├── images
    │ │ ├── initrd.img
    │ │ └── vmlinuz
    │ ├── pxelinux.cfg
    │ │ └── efidefault
    │ └── vesamenu.c32
    ├── pxelinux.0
    ├── pxelinux.cfg
    │ ├── default
    │ └── efidefault
    └── vesamenu.c32

    Output for Default File
    [root@prod1 tftpboot]# more pxelinux.cfg/default
    default vesamenu.c32

    prompt 0
    timeout 100
    MENU TITLE PXE Menu by KS
    LABEL RedHat 7.0 x64
    MENU LABEL RedHat 7.0 x64
    KERNEL images/vmlinuz append initrd=images/initrd.img linux ks=http://192.168.50.11/pub/kickstart/ks1.cfg

    [root@prod1 tftpboot]# more pxelinux.cfg/efidefault
    default 0
    timeout 10

    title RHEL
    root (nd)
    kernel images/vmlinuz
    initrd images/initrd.img ip=dhcp ksdevice=bootif inst.ks=http://192.168.50.11/pub/kickstart/ks2.cfg

    Please assist..

    by

    points

    Responses

    Red Hat LinkedIn YouTube Facebook X, formerly Twitter

    Quick Links

    Help

    Site Info

    Related Sites

    © 2026 Red Hat