PROBLEM:

On servers with on-board AHCI based SATA controllers, controllers can be set
to pure HBA mode or RAID mode using system BIOS. System BIOS changes the PCI
sub-system IDs based on this mode.

LSI's software RAID driver (megasr) can claim RAID mode AHCI controllers and
provide RAID 0, 1, 10 & 5 functionality. The megasr driver considers all four
PCI IDs to decide if it supports a controller.

The native ahci driver Linux kernel looks at only the vendor & device IDs. It
ignores the subsystem IDs. As a result it ignores the RAID mode. While this
behavior always existed, it poses a problem only in Red Hat Enterprise Linux 5
(RHEL5). All other Red Hat distributions (RHEL3, RHEL4) load the driver from
a driver disk (DUD) if it exists before loading the native drivers from the
installation media. To override native ahci and use megasr, users just had to
us the megasr DUD. Once megasr is loaded, these older versions added megasr
to the initial RAM disk image (initrd) and removed ahci from it.

RHEL5 installation loads native ahci driver even when megasr DUD is present.
It also includes ahci in the initrd. This is an undocumented deviation from
the normal behavior. Red Hat initially set to resolve this in the next RHEL5
update (RHEL 5.1). But later it rejected the issue.

SOLUTION:

1. 	To prevent ahci from loading ahead of megasr, use "noprobe" option at
	the installation kernel boot prompt (in addition to "dd" option). This
	lets you install RHEL5 on megasr virtual drive.

	boot: linux dd noprobe=ata1 noprobe=ata2 noprobe=ata3 noprobe=ata4

2.	At the last step of the installation (after all the packages are
	installed) RHEL5 prompts you to reboot. At this point, the initrd is
	built with ahci driver. Megasr must be added and ahci must be deleted
	from initrd before you reboot.

3.	Pressing Ctrl+Alt+F2 would take you to a text console prompt. Run
	megasr_install script from the root (/) directory. This script will
	modify /etc/modprobe.conf and /etc/modprobe.d/blacklist if required.
	It will create a new initrd image.

4.	The megasr_install script will be provided in RHEL5 DUD floppy image.

5.	If the script is in floppy or an USB flash drive, you have to mount it
	first. In the normal system, we mount using /dev/sd<x> device names
	to mount a device. In the pre-installation environment, you may not
	have these names created. You can find the major and minor numbers of
	your device by reading /proc/partitions file. Using those numbers in
	mknod, you can create your own device name.


