Subject: Re: mounting non-BSD partitions.
To: Curt Sampson <cjs@portal.ca>
From: John F. Woods <jfw@jfwhome.funhouse.com>
List: port-i386
Date: 06/21/1997 11:53:48
> > I've been trying to think of some way to handle things so that the
> > number of partitions per pack can change without causing upgrade hell
> > for people who have trouble with handling that overlap interval.
> I can think of a couple of ways to do it; both are nasty.
> You could have the kernel go and look up /dev/sd1a and /dev/wd1a
> on the root partition and see what the minor numbers are, and
> configure itself based on that.
> You could have a sysctl variable to set it, and have a user process
> look at /dev/sd1a and /dev/wd1a to see what to do.

There may be a more pleasant way.  As someone pointed out, device numbers are
currently 16 bits, but they're stored in a 32 bit field.[1]  If the size of
a device number is an attribute of a filesystem, then you could simply have
a per-filesystem flag telling whether to unpack the device number as 16 or
32 bits.  If you want to not have to newfs your filesystems (or maybe fsck -3),
then new device numbers could perhaps be made 31 bits, with the top bit being
0 for backward compatible 16-bit device numbers, and 1 for new 31-bit numbers.
Then the kernel decides the meaning of a device inode on the fly.



[1] This, by the way, means that the maximum size of an FFS filesystem is not
2^63B; you're limited to 2^32 disk blocks per filesystem.  (If those are
512-byte blocks, that's a maximum filesystem size of 2048GB; if those are
logical blocks (presumably the fragment size), then you're limited to
something like 32TB (I think).  Of course, with large disk drives currently
at the 23GB mark, you'd need a pretty impressive ccd array to bump into those
limits.)