In our previous posts, we have configured a PXE boot server for automated installation of RHEL 7.5 operating system that supports both BIOS and UEFI based clients. Now, we will add RHEL 6 installation option in our PXE boot server. We will also create a Kickstart file for automated installation of RHEL 6 operating system, and ensure that it will support both BIOS and UEFI based clients.
Note: In this article, we are performing everything from CLI, therefore, it is highly recommended that, you should have Linux Pocket Guide: Essential Commands for quick reference.
Table of Contents:
- System Specification
- Copy RHEL 6 ISO/DVD contents to FTP Server
- Create a Kickstart file for automated installation of RHEL 6
- Copy boot images to tftpboot directory
- Create Menu Entries for RHEL 6 installation
System Specification:
We use the same Linux server that we have configured as PXE Boot Server in our previous article. These specifications have been re-mentioned below for convenience of the readers.
- CPU - 2 Core (2.4 Mhz)
- Memory - 2 GB
- Storage - 50 GB
- Operating System - RHEL 7.5
- Hostname - pxe-server.itlab.com
- IP Address - 192.168.116.41/24
Copy RHEL 6 ISO/DVD contents to FTP Server:
Connect to pxe-server.itlab.com using ssh.
Attach RHEL 6 ISO/DVD and mount it at /mnt/iso (you can use any mountpoint, according to your choice).
# mount -t iso9660 /dev/cdrom /mnt/iso
mount: /dev/sr0 is write-protected, mounting read-only
Copy contents of /mnt/iso directory to FTP server.
# cp -rf /mnt/iso /var/ftp/pub/rhel6
Create a Kickstart file for automated installation of RHEL 6:
We have to write a Kickstart file for RHEL 6 within the /var/ftp/pub/rhel6 directory, so it can be accessed by PXE clients via FTP service.
# vi /var/ftp/pub/rhel6/rhel6.cfg
A sample kickstart file is given below, you can modify it according to your requirements.
Read Also: | Automate PXE Client Installations with Kickstart |
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$vyNMLtgd$VmtByshddZSBK..uuFhoH0
# Use network installation
url --url="ftp://192.168.116.41/pub/rhel6"
# System language
lang en_US
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --enforcing
# Firewall configuration
firewall --enabled --ssh
# Network information
network --bootproto=dhcp --device=eth0
# Reboot after installation
reboot
# System timezone
timezone Asia/Karachi
# System bootloader configuration
bootloader --location=mbr
autopart
# Partition clearing information
clearpart --none --initlabel
# Packages to be installed
%packages
@core
%end
Copy boot images to tftpboot directory:
We need to copy initrd.img and vmlinuz files from RHEL 6 ISO to /var/lib/tftpboot/networkboot/rhel6 directory. These files will be later referenced in the menu entry of PXE boot menu.
# mkdir /var/lib/tftpboot/networkboot/rhel6 # cp /var/ftp/pub/rhel6/images/pxeboot/vmlinuz /var/lib/tftpboot/networkboot/rhel6/ # cp /var/ftp/pub/rhel6/images/pxeboot/initrd.img /var/lib/tftpboot/networkboot/rhel6/
Create Menu Entries for RHEL 6 installation:
Edit PXE boot menu for BIOS based clients.
# vi /var/lib/tftpboot/pxelinux.cfg/default
add a menu entry for RHEL 6 installation therein.
default menu.c32
prompt 0
timeout 30
menu title Ahmer's PXE Menu
label Install RHEL 7.5
kernel /networkboot/rhel7/vmlinuz
append initrd=/networkboot/rhel7/initrd.img inst.repo=ftp://192.168.116.41/pub/rhel7 ks=ftp://192.168.116.41/pub/rhel7/rhel7.cfg
label Install RHEL 6.0 (64-bit)
kernel /networkboot/rhel6/vmlinuz
append initrd=/networkboot/rhel6/initrd.img inst.repo=ftp://192.168.116.41/pub/rhel6 ks=ftp://192.168.116.41/pub/rhel6/rhel6.cfg
Edit PXE boot menu for UEFI based clients.
# vi /var/lib/tftpboot/grub.cfg
add a menu entry for RHEL 6 installation therein.
set timeout=60
menuentry 'Install RHEL 7.5' {
linuxefi /networkboot/rhel7/vmlinuz inst.repo=ftp://192.168.116.41/pub/rhel7/ inst.ks=ftp://192.168.116.41/pub/rhel7/rhel7.cfg
initrdefi /networkboot/rhel7/initrd.img
}
menuentry 'Install RHEL 6.0' {
linuxefi /networkboot/rhel6/vmlinuz inst.repo=ftp://192.168.116.41/pub/rhel6/ inst.ks=ftp://192.168.116.41/pub/rhel6/rhel6.cfg
initrdefi /networkboot/rhel6/initrd.img
}
Now, connect a BIOS based PXE client to network and boot it. It will display the following PXE boot menu.
Similarly, connect a UEFI based PXE client to network and boot it. It will display the following PXE boot menu.
We have successfully added the RHEL 6 installation option to our PXE boot server. You can add other versions of RHEL or CentOS in similar manner.