Installing CentOS 8 on a Dell PowerEdge R610

Updated 2020-08-10, see edit below

I recently had to upgrade a CentOS 7 server to CentOS 8. I foolishly expected this to be easy since it wasn't a heavily customized install in the first place and most of the stuff I cared about was in my home directory. I was, as you may have guessed, wrong.

The problem was that CentOS 8 removed the driver for the Dell H700 RAID controller in my server. Setting aside the wisdom of that decision, here's how to get around it:

  1. Download the appropriate driver update disk. You can determine which one that is using this list of device ids. For the H700, it was the megaraid_sas driver.
  2. Put the file you downloaded somewhere easy to get to. I added it to a local web server that I was already running and renamed it to something shorter. You could theoretically just use the file from elrepo.org directly, but you probably don't want to do that for reasons which will become clear in the next step.
  3. When booting the CentOS installation image, press tab on the bootloader screen to edit the arguments. Add inst.dd=http://your-server/file-you-downloaded.iso to the list. Note that you can use any protocol supported by dracut (for example, I saw someone use NFS). This is why I didn't use the elrepo.org file directly - typing in that path through the bootscreen would have been an error-prone nightmare.
  4. Boot with your customized parameters. The installer will now load the extra driver and your disk(s) should be visible.

You can also write that DUD iso to another piece of media and the installer is supposed to pick it up automatically. I've seen reports that this doesn't always work as intended and frankly having to use a whole second USB drive for this simple iso seemed more complicated and overkill. Getting it from the network was easier, albeit not as easy as if the drivers were just included in the first place.

Edit 2020-08-10: It is also important that you install the elrepo-release package after you install using this method. Otherwise you won't get updated versions of the driver and when kernel updates are installed it may break your system.