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..

Responses