When installing Slackware Linux (as of this writing, 10.1) on a Dell PowerEdge 2850 server with an embedded PERC 4e/Di RAID controller, you might have problems getting it to recognize your disks. These are the steps I took to work-around this situation. It does require a second, working Linux installation from which to generate the necessary module files. As with all things, your mileage may vary.

  1. On your second, working Linux machine, download the Linux kernel 2.4.29 kernel and compile it with CONFIG_SCSI_MEGARAID and CONFIG_SCSI_MEGARAID2 selected as modules.
  2. Copy the resulting modules, megaraid.o and megaraid2.o, to removeable media. In this case, I copied them to a USB flash memory stick.
  3. On the PowerEdge 2850 server, boot the system with the Slackware 10.1 installation disk using the adaptec.s (rather than the default) kernel image.
  4. Insert your USB flash memory stick and execute the command `/dev/makedevs.sh` from the console. This generates the missing /dev/sd?? block devices required by the memory stick.
  5. Mount the device with something like `mount /dev/sda1 /mnt`
  6. Copy one of the two modules (preferably the newer megaraid2.o) to your root filesystem. We need to do this so that we can unmount our flash stick and relinquish the /dev/sda1 device for use by our RAID controller. Something like `cp /mnt/megaraid2.o /` should suffice.
  7. Unmount the USB flash memory device and remove it from the system.
  8. Remove the USB storage module with `rmmod usb-storage` in order to free-up the /dev/sda? block device. If you don't do this, you'll end up with /dev/sdb as your first RAID SCSI device, which will mess things up when you reboot after installing Slackware.
  9. Load the module with `insmod /megaraid2.o`
  10. Rerun the `/dev/makedevs.sh` script to generate the necessary block entries for your RAID devices.

That's it! Your first RAID device should be available as /dev/sda. Installation of Slackware Linux can now proceed.