Kernel device naming - changed from 10.3 ?

I have a 4GB USB flash disk that I boot from (containing my root filesystem) and 8x SATA disks I use in a RAID array. Under 10.3, the USB disk was always named /dev/sda and the SATA disks were named /dev/sdb and so on.

Now under 11.0, the SATA disks get /dev/sda and so on … then my USB flash disk gets the next free device node. I need to change this behaviour because if I add another SATA disk to my array while running, it will get a device name higher than my flash disk - then on reboot the USB flash disk will be shuffled up to be the last device again. This causes problems with my RAID array (using mdadm) as the member disks no longer match the config file after reboot.

Is there any way I can influence the kernel name of this USB flash device to ensure it gets named before any other SATA disks ? Reading up on udev, it seems to provide persistent device naming (via /dev/disk/by-id or helpful symlinks) after the kernel has named the device already.

Thanks in advance.

Yes, you just use nodes from /dev/disk/by-id/ instead of nodes from /dev. Simple as that.

I understand you to mean to refer to the devices in my array by their respective /dev/disk/by-id/ entries rather than traditional kernel device names.

I had thought along this line earlier; perhaps using udev rules to reference serial numbers of disks - either way such an approach truly de-couples the disk from the order of it’s attachment to the bus, thus solving my problem.

Thanks !