[CentOS] Controlling the order of /dev/sdX devices?

Thu Mar 31 12:13:21 UTC 2011
Cal Sawyer <Cal.Sawyer at artsalliancemedia.com>

Hi

CentOS 5.4(final) 2.6.18-164el5PAE.  I am trying to prevent removable
USB and eSATA devices from occupying /dev/sdX devices ahead of a 3ware
RAID controller.  For example: at boot, if a USB drive and eSATA HDD
(connected to an LSI 1068E onboard controller, reflashed in "IT" mode to
handle hotplug devices) were both present, they would occupy devices
/dev/sdb and /dev/sdc, ahead of the RAID controller which ends up as
/dev/sdd.  As these are removable devices, they should normally get
handled by custom udev script looking for adds matching
KERNEL=="sd[c-z][0-9]" ,SUBSYSTEM=="block", so the volume handled by
RAID controller gets grabbed by udev but fails to mount and subsequent
udev plug events fails due the slots left empty below /dev/sdd.  If no
hotplug devices are present while booting, fstab handles mounting of the
system and RAID volume:

SATA system HDD	/dev/VolGroup00/LogVol00 /
RAID array		LABEL=STORE      /store		## mounts ==
/dev/sdb1

I realise this description is kind of a tangle, but i am essentially
looking for a way to hard-map the 3ware RAID controller to /dev/sdb
(UUID won't work as there are multiples of this system) before PCI (?)
enumeration picks up the USB and LSI-managed devices so that udev can
take care of the device at /dev/sdc and above. I've tried blacklisting
the mpt and usb-storage modules and short-circuiting SUBSYSTEM=="block"
devices in 05-udev-early.rules, all with zero or negative effect.
rc.sysinit doesn't appear to be the right place and that's about as deep
down as i know how to go.

cheers,

cs