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