Once upon a time, Cameron Simpson cs@zip.com.au said:
I'm all ok with providing sda/hda as discovered, _provided_ one also has nice bus/id type names as well. Solaris' bus/id/partition drive names looked long and complicated but they were reliable - you could look at the device ids and know what the OS would call them.
See /dev/disk/by-{id,path,uuid}. This is also an advantage of LVM; it knows how to find the physical volumes, and you generally don't have to care (/dev/vg_foo is always /dev/vg_foo). Even Solaris' bus number wasn't stable in the face of card changes IIRC.
The problem with enumerating devices by HBA/bus/ID/LUN is that today's storage is more dynamic. USB ports are "SCSI" (protocol); how do you number those? IIRC USB ports on a hub are not deterministically ordered, so a flash card reader on a hub may come before a thumb drive on one boot and after on the next.