date |
---|
2023-11-23 |
I ran into a snag upgrading from Centos7 to Rocky9 on my decade-old desktop. Its SAS controller driver was no longer included by default:
$ lspci -nn | grep 'Serial Attached SCSI'
05:00.0 Serial Attached SCSI controller [0107]: Intel Corporation C602 chipset 4-Port SATA Storage Control Unit [8086:1d6b] (rev 05)
The installer couldn't see my hard drives because it didn't have the right driver.
Eventually found this post,
which led to ElRepo, the kmod-isci
driver, and the
inst.dd
option to the anaconda installer:
ip=dhcp inst.dd=https://elrepo.org/linux/dud/el9/x86_64/dd-isci-1.2.0-3.el9_2.elrepo.iso
This enabled network access via DHCP, and then downloaded and installed the driver from a "driver update disk" (DUD or DD).
After upgrading from 9.2 to 9.3 the OS failed to boot, dropping into the dracut emergency shell. Rebooting into the previous 9.2 kernel worked.
Oops, need the latest version of kmod-isci
from ElRepo.
Unfortunately, installing the new driver uninstalls the old one, and you won't be able to boot the old
9.2 kernels if anything goes wrong. You can check if the driver (isci.ko
) is missing with the following:
lsinitrd /boot/initramfs-5.14.0-284.30.1.el9_2.x86_64.img | grep isci
So how do we upgrade without losing the old driver? The following seems to work, but i'm not an expert, so this might be bad (or even worse, slightly suboptimal):
-
First, make a copy of the old
isci.ko
file, in this case:( cd /usr/lib/modules/5.14.0-284.11.1.el9_2.x86_64/extra/isci && cp isci.ko isci.ko- )
-
Install the new rpm:
rpm -Uvh kmod-isci-1.2.0-4.el9_3.elrepo.x86_64.rpm
-
Put the old
isci.ko
file back:( cd /usr/lib/modules/5.14.0-284.11.1.el9_2.x86_64/extra/isci && mv isci.ko- isci.ko )
-
Regenerate the initramfs files:
echo /usr/lib/modules/5.14.0-284.11.1.el9_2.x86_64/extra/isci/isci.ko | weak-modules --add-modules --verbose