PXE Installing RHEL 8 on old hardware with a driver disk

Hardware last longer than Hardware support. My lab has 3 Dell R610s, which have old disk controllers…too old for RHEL 8. Dell is no longer supporting the Hardware, which means that the latest versions of RHEL do not ship with the drivers needed to install.

The R610 needs the driver for sas: mptsas

I was able to get a driver disk from the EL repo here: https://elrepo.org/linux/dud/el8/x86_64/dd-mptsas-3.04.20-3.el8_2.elrepo.iso

When you perform a manual install, you should see a spot early on in the install process that asks you if you want to add a driver disk.

What is a driver disk? Format-wise, it is ISO file, designed to burn to DVD (hey that was the rage when disks ruled the stage). Inside, it has additional Kernel modules for specific hardware. Let’s mount it loopback and take a look. Here is my /etc/fstab entry

/var/lib/libvirt/images/dd-mptsas-3.04.20-3.el8_2.elrepo.iso /var/www/html/dd-mptsas-3.04.20-3.el8_2 iso9660 loop,ro 0 0

What is inside that ISO file? It is a Yum Repo.

# cd /var/www/html/dd-mptsas-3.04.20-3.el8_2/
# find . -print
.
./rhdd3
./rpms
./rpms/x86_64
./rpms/x86_64/kmod-mptsas-3.04.20-3.el8_2.elrepo.x86_64.rpm
./rpms/x86_64/repodata
./rpms/x86_64/repodata/1c40c084286da9b6bf0844f2adfbfd821825923b101f4911c09bd4dd49532cfc-filelists.xml.gz
./rpms/x86_64/repodata/32853cacc346d1cf4a09e5ce21d26b398654c4e73d1d8945a8ceb538dcfb5a4c-filelists.sqlite.bz2
./rpms/x86_64/repodata/39050c18d0774082851ef1fcb0958212efe3f28e5392a1faaba5ae76d48d9190-primary.xml.gz
./rpms/x86_64/repodata/4d081f4ae49c64e92046c4fd959ae673dbc23ffc172f441d9dba7cdeb7da720d-primary.sqlite.bz2
./rpms/x86_64/repodata/9ae94c56bee7cf70636cb5c736018aade8440abe3bea6661b0463d928a2a0358-other.sqlite.bz2
./rpms/x86_64/repodata/e9262d76318e62d569aaa1f450e56bd7abdfe7b79f010c421ad7a3bd44522ffe-other.xml.gz
./rpms/x86_64/repodata/repomd.xml
./src
./src/kmod-mptsas-3.04.20-3.el8_2.elrepo.src.rpm

For the install, we know which driver is required, so we can provide that to the Kernel command line via the inst.dd key/value. I use this value for the Dell PowerEdge r610 Machines I have.

inst.dd=http://192.168.122.1/dd-mptsas-3.04.20-3.el8_2/rpms/x86_64/kmod-mptsas-3.04.20-3.el8_2.elrepo.x86_64.rpm

And here is my /var/lib/tftpboot/pxelinux/pxelinux.cfg/rhel8.2-r61

timeout 10
display boot82.msg
default 1
prompt  1
 
label 1
  menu label ^Install Red Hat Enterprise Linux 8.1
  kernel rhel82/vmlinuz
  append initrd=rhel82/initrd.img showopts method=http://192.168.122.1/rhel8.2   ks=http://192.168.122.1/kickstart/rhel8.2.r610.conf  inst.dd=http://192.168.122.1/dd-mptsas-3.04.20-3.el8_2/rpms/x86_64/kmod-mptsas-3.04.20-3.el8_2.elrepo.x86_64.rpm ip=dhcp net.ifnames=0 biosdevname=0
 
menu end

By itself, the PXE infrastructure won’t pick up this change. I symlink the MAC-addressed based filename to this implementation.

# ls -la /var/lib/tftpboot/pxelinux/pxelinux.cfg/
total 80
drwxr-xr-x. 2 root root  4096 Jun 22 16:06 .
drwxr-xr-x. 6 root root   175 Jun 22 12:22 ..
lrwxrwxrwx. 1 root root    12 Jun 22 11:58 01-00-21-9b-93-d0-90 -> rhel8.2-r610
lrwxrwxrwx. 1 root root    12 Jun 22 11:57 01-00-21-9b-98-a3-1f -> rhel8.2-r610
lrwxrwxrwx. 1 root root    12 Jun 22 11:59 01-00-21-9b-9b-c4-21 -> rhel8.2-r610
lrwxrwxrwx. 1 root root    11 Jun 19 17:34 01-52-54-00-29-0b-bf -> rhel8.1-kvm
lrwxrwxrwx. 1 root root    11 Jun 19 17:33 01-52-54-00-2d-74-f1 -> rhel7.8-kvm
-rw-r--r--. 1 root root   312 Jun 19 17:28 rhel7.8-kvm
-rw-r--r--. 1 root root   313 Jun 19 20:15 rhel7.8-r610
-rw-r--r--. 1 root root   427 Jun 22 16:06 rhel8.2-r610

This Article walks you through the process; There are comparable articles for CentOS out there that will outline a similar approach.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.