On 2013-05-03 01:38, Jim Henderson wrote:
> On Thu, 02 May 2013 21:38:06 +0000, Carlos E. R. wrote:
>
>> I don’t have a link handy to the document that explains how this is
>> done,
>> bypassing the major/minor number limit. It was a SUSE dev who did it.
>
> Maybe it was a limitation of fdisk, but I hadn’t heard of this being done
> before.
Just try it, fdisk did manage 
Enterprise people were limited to 15 partitions; home users were not.
I’ll explain 
It was not a limitation of the disks nor of the software: it was a
kernel limitation. Actually, a limitation of the bits available for
devices defined in /dev, the major/minor numbers (one byte for each,
IIRC). See “/usr/src/linux/Documentation/devices.txt”:
8 block SCSI disk devices (0-15)
0 = /dev/sda First SCSI disk whole disk
16 = /dev/sdb Second SCSI disk whole disk
32 = /dev/sdc Third SCSI disk whole disk
See? There are only 16 minor numbers for the device sda, from 0 to 15. 0
was the complete disk, and the rest the partitions, 14 available in
fact. The limit is arbitrary, because simply using a bigger integer size
would increase the available devices (this was discussed but rejected).
The hardware had no such limitations.
If you have worked a lot in the enterprise with scsi disks, as I
understand, then you would be limited to that number for many years, so
it is understandable that you thought the limit was there.
On the other hand, home users saw different limits: we used IDE disks
which had a different bit distribution:
3 block First MFM, RLL and IDE hard disk/CD-ROM interface
0 = /dev/hda Master: whole disk (or CD-ROM)
64 = /dev/hdb Slave: whole disk (or CD-ROM)
See? Fewer disk names, but more partitions for each (63). Again, an
arbitrary limit.
Now, look at this paragraph hidden in the same doc:
Fourth, remember that Linux now has extensive support for dynamic
allocation of device numbering and can use sysfs and udev to handle the
naming needs. There are still some exceptions in the serial and boot
device area. Before asking for a device number make sure you actually
need one.
....
259 block Block Extended Major
Used dynamically to hold additional partition minor
numbers and allow large numbers of partitions per device
I don’t have currently that number of partitions, so I can not see for
myself what numbers are actually used.
Learn something new every day.
We all do 
I happen to know about this because I was very interested in the issue.
When the disk drivers were replaced so that names were changed from hd*
to sd* (libata implementation) people like me that were using more than
15 partitions could simply not update our systems and we had to wait.
Many developers argued that nobody used more than 15 partitions, but
many of us were (with IDE disks). Specially beta-testers with many
operating systems in few disks (even one).
Enterprise users, on the other hand, were not affected, they had the
same number of partitions as before.
Fortunately, we managed to convince enough people, and in particular a
SUSE developer did the job, Tejun Heo. See:
Kernel Log: Coming in 2.6.28 - Part 1: ATA support and block layer
> http://www.heise-online.co.uk/open/Kernel-Log-Coming-in-2-6-28-Part-1-ATA-support-and-block-layer--/news/111743
"(...) A number of small block layer patches by Libata developer Tejun
Heo further removes the limitation of a maximum of 15 hard drive
partitions on data media driven via Libata."
http://lwn.net/Articles/303270/
http://lwn.net/Articles/290141/
Date: Wed, 31 Dec 2008 12:56:34 +0100 (CET)
From: Carlos E. R. <>
To: OS-en <opensuse at opensuse.org>
Subject: Re: [opensuse] Are multiple partitions back yet?
> This last article is very interesting; it is from last July, thoug. What
> it does is use dynamic minor limits, asigned on the fly, considering that
> the udev system assigns nodes on the fly anyway: meaning basically
> unlimited number of partitions. The article says it is unclear wether this
> will be adopted by al distros, anyway (the change of names from hdX to sdX
> hurted many), but considering who made the patches and who he works for,
> we'll see them in 11.2 :-D
This was finally implemented in 11.2, not that long ago. 
–
Cheers / Saludos,
Carlos E. R.
(from 12.1 x86_64 “Asparagus” at Telcontar)