On Dec 31, 2023, at 12:07 PM, Warner Losh <imp@bsdimp.com> wrote:

Yes. Unlike today, the partitions covered the disk in different, overlapping
ways. And allowed for some parts of the disk to be uncovered by a
partition. You could then patch the offset and length into the kernel with
adb and use that area of the disk for swap space.
 
It was also helpful, if you had the drives, to nightly dd
your real root to the "a" partition on another, identical
drive, so that you could boot the backup root in an emergency.

I don't remember for sure, but I think that Ultrix may have
been the first BSD-style system to have disk labels, followed
by some version of SunOS. All of that is way in the distant
past though: mid- to late 80's.

When I looked into it years ago, I convinced myself that SunOS
was the first to have it (since the very first version of SunOS 1.0
had disk labels) and that all the other vendors followed suit within
a couple of years. Ultrix-11 had the fixed labels through its EOL.
I didn't see any disklable stuff in the Ultrix-32M that we have, but
it was admittedly a quick look.

I wrote the first 2-3 HD drivers for Fortune Systems. I had
the first one up and running[1] by late 1981. IIRC we used an
ioctl to read/write sector 0 of a disk, which is where we
stored partition info. I think by 1983 we were using some
4.1a bits (or at least influenced by it) so likely disklabel
was used by then. The first disk drive was 5MB and cost
$1700. But 5 1/4" disk capacities were growing fast so there
was no question of hardwiring a disktab in source code. I
even had a program that would try to "step" through cylinders
until it ran into errors, to find at usable capacity!

[1] Well, more like walking! Initially DMA didn't work on the
first wirewrap boards so had to use PIO (programmed IO),
at 25KB/s. A quick hack doubled that performance, while
an ST506 disk could do 5Mbits/sec.