MFC r268407 (by gjb):

Fix non-version text after .Fx macro usage.

MFC r269487 (by issyl0):
  Add generic list, status, load and unload docs to gpart(8)

  - In the style of gmirror(8).
  PR:		docs/191534

MFC r269852:
  Add sysctl and loader tunable kern.geom.part.mbr.enforce_chs that is set
  by default. It can be used to disable automatic alignment to CHS geometry,
  that GEOM_PART_MBR does.
This commit is contained in:
ae 2014-08-25 12:49:10 +00:00
parent 74de429806
commit 0f937e3532
2 changed files with 39 additions and 2 deletions

View File

@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd July 1, 2014
.Dd August 12, 2014
.Dt GPART 8
.Os
.Sh NAME
@ -129,6 +129,14 @@
.Op Fl f Ar flags
.Ar geom
.\"
.Nm
.Cm list
.Nm
.Cm status
.Nm
.Cm load
.Nm
.Cm unload
.Sh DESCRIPTION
The
.Nm
@ -467,6 +475,18 @@ See the section entitled
below for a discussion
about its use.
.El
.It Cm list
See
.Xr geom 8 .
.It Cm status
See
.Xr geom 8 .
.It Cm load
See
.Xr geom 8 .
.It Cm unload
See
.Xr geom 8 .
.El
.Sh PARTITIONING SCHEMES
Several partitioning schemes are supported by the
@ -551,7 +571,8 @@ The
utility also allows the user to specify scheme-specific partition types
for partition types that do not have symbolic names.
Symbolic names currently understood and used by
.Fx are:
.Fx
are:
.Bl -tag -width ".Cm dragonfly-disklabel64"
.It Cm bios-boot
The system partition dedicated to second stage of the boot loader program.
@ -1144,6 +1165,12 @@ If this variable set to 1 each component of the mirrored volume will be
present as independent partition.
.Em NOTE :
This may break a mirrored volume and lead to data damage.
.It Va kern.geom.part.mbr.enforce_chs : No 1
Specify how the Master Boot Record (MBR) module does alignment.
If this variable is set to a non-zero value, the module will automatically
recalculate the user-specified offset and size for alignment with the CHS
geometry.
Otherwise the values will be left unchanged.
.El
.Sh EXIT STATUS
Exit status is 0 on success, and 1 if the command fails.

View File

@ -49,6 +49,14 @@ __FBSDID("$FreeBSD$");
FEATURE(geom_part_mbr, "GEOM partitioning class for MBR support");
SYSCTL_DECL(_kern_geom_part);
static SYSCTL_NODE(_kern_geom_part, OID_AUTO, mbr, CTLFLAG_RW, 0,
"GEOM_PART_MBR Master Boot Record");
static u_int enforce_chs = 1;
SYSCTL_UINT(_kern_geom_part_mbr, OID_AUTO, enforce_chs,
CTLFLAG_RWTUN, &enforce_chs, 1, "Enforce alignment to CHS addressing");
#define MBRSIZE 512
struct g_part_mbr_table {
@ -200,6 +208,8 @@ mbr_align(struct g_part_table *basetable, uint32_t *start, uint32_t *size)
{
uint32_t sectors;
if (enforce_chs == 0)
return (0);
sectors = basetable->gpt_sectors;
if (*size < sectors)
return (EINVAL);