Hard Disk device IDs in Linux

Nicholas Leippe nick at leippe.com
Fri Mar 8 00:18:56 MST 2013

Historically it was sd[a-z][a-z][0-14]

The number of devices is determined by (number of major numbers) x
(number of minor numbers) ÷ (number of partitions).
I think there's 12 bits for major number and 20 bits for minor
numbers, and a max of 15 partitions. Newer kernels added a means to do
dynamic device number allocation, so i don't know what the actual
limits are.

I don't know what the kernel built-in default naming scheme for the
higher drive numbers is currently. Nowadays that's often left up to
udev rules--some distros override the kernel defaults to provide a
persistent naming convention.

As for mdadm, that depends on the superblock format chosen. v 0.90
limits it to 28 components. Version 1.0 supports at least 384, to a
theoretical max of 64k component devices. Also, the superblock version
determines limits on both maximum component size and total volume size
of the combined array.

More information about the PLUG mailing list