cvs commit: src/sys/sys disklabel.h disklabel64.h src/sbin Makefile src/sbin/disklabel disklabel.c src/sbin/disklabel64 Makefile crc32.c disklabel64.5 disklabel64.8 disklabel64.c pathnames.h src/sys/kern subr_disklabel32.c subr_disklabel64.c ...

Matthew Dillon dillon at
Mon Jun 18 19:54:27 PDT 2007

dillon      2007/06/18 19:53:56 PDT

DragonFly src repository

  Modified files:
    sys/sys              disklabel.h disklabel64.h 
    sbin                 Makefile 
    sbin/disklabel       disklabel.c 
    sys/kern             subr_disklabel32.c subr_disklabel64.c 
  Added files:
    sbin/disklabel64     Makefile crc32.c disklabel64.5 
                         disklabel64.8 disklabel64.c pathnames.h 
  Implement non-booting support for the DragonFly 64 bit disklabel:
  * Add full kernel support.  Both 32 and 64 bit labels will be probed.
  * Add a new program, disklabel64, which allows you to create and edit
    the new disklabel.
  * Add some logic to prevent foot shooting.
  DragonFly's 64 bit disklabels start at byte offset 0 on the disk slice
  or GPT partition and operate in a slice-relative fashion.  No translation
  is required when going from on-disk to in-core or vise-versa, unlike the
  existing 32 bit disklabels.  512 bytes at the beginning of the label are
  reserved for legacy boot code.  Specifically, the label starts at sector 0,
  NOT sector 1, which means its location on the disk is the same regardless
  of the sector size.
  The label has a UUID to uniquely identify the storage and a type and
  object uuid for each partition.  All location specifications are 64 bit
  byte offsets, NOT logical blocks.  The label enforces an alignment
  requirement for label-related I/O and partitions which defaults to 4K
  regardless of the sector size.  This makes the label 100% portable across
  media with different sector sizes within the constraints of the alignment
  All partitions are specified using byte offsets and sizes, constrained
  by the alignment requirement, relative to the base of the label (i.e.
  offset 0 in the slice).  disklabel64 will adjust the offsets for display
  purposes to be relative to the partition table area.  The label headers,
  partition table, and boot2 areas come BEFORE the partition table area and
  partitions which overlap any of those objects are not allowed.
  By default, a virgin 64 bit disklabel will reserve 32K for boot2.  As of
  this writing, boot1 and boot2 blocks have not yet been implemented.
  Revision  Changes    Path
  1.28      +8 -4      src/sys/sys/disklabel.h
  1.2       +46 -7     src/sys/sys/disklabel64.h
  1.17      +1 -0      src/sbin/Makefile
  1.22      +15 -9     src/sbin/disklabel/disklabel.c
  1.3       +29 -52    src/sys/kern/subr_disklabel32.c
  1.2       +420 -0    src/sys/kern/subr_disklabel64.c
  1.47      +88 -21    src/sys/kern/subr_diskslice.c

More information about the Commits mailing list