CVSROOT:        /cvs
Module name:    src
Changes by:     [email protected] 2025/11/13 13:59:14

Modified files:
        sys/dev/ata    : wd.c 
        sys/kern       : kern_pledge.c 
        sys/sys        : disklabel.h dkio.h 
        sys/scsi       : sd.c 
        sys/dev/isa    : fdreg.h 
        sys/arch/sparc64/dev: fd.c 

Log message:
Begin transition to 52-partition support.  The partition encoding used
to be lowest 4 bits of dev_t, and now becomes 6.  This supplies 64
partitions in struct disklabel.d_partitions[MAXPARTITIONSUNIT], but we
only use 52 of these slots (an architecture can be either 16 partition
or 52 partition, depending on MD define MAXPARTITIONS).  The
52-partition limit is due to single-character representation limit of
a-zA-Z.  We supply a backwards-compat ioctl for a while which can read
an disklabel structure.

This change does not yet store 52-partition information on-disk, and
does not transition any architecture to allowing use of >16 partitions.
Those changes come soon, after this compatibility breaking change settles.

Immediate result is dev_t numbers for /dev/{sd,wd,rd,fd,...}[12345...][a-p]
become incorrect, and need to be repaired.  A sysupgrade will do this for
automatically.  For a hand-build, or a manual kernel replacement, systems
which have root *NOT ON SD0 or WD0*, probably fail into single-user and you
must perform these steps explained in /etc/rc:

#   fsck /dev/rrootdisk
#   mount -uw /dev/rootdisk /
#   cd /dev && ./MAKEDEV redodisks

Please do not try to manual-build through this on a system earlier than 7.8.

with and ok krw

Reply via email to