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.
- 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.
- Copy the resulting modules, megaraid.o and megaraid2.o, to removeable media. In this case, I copied them to a USB flash memory stick.
- 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.
- 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.
- Mount the device with something like `mount /dev/sda1 /mnt`
- 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.
- Unmount the USB flash memory device and remove it from the system.
- 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.
- Load the module with `insmod /megaraid2.o`
- 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.