gpart(8): Recognize apple-zfs and solaris-reserved partition ids

Introduce G_PART_ALIAS_SOLARIS_RESERVED, GPT_ENT_TYPE_SOLARIS_RESERVED et al.,
to make gpart show output more convenient on systems with illumos/openindiana
disks visible.

Submitted by:	Juraj Lutter <otis AT sk.FreeBSD.org>
Reviewed by:	bcr(manpages), delphij, myself
Differential Revision:	https://reviews.freebsd.org/D26012
This commit is contained in:
cem 2020-08-17 17:07:05 +00:00
parent 6c27a6ce2c
commit aa185fa69b
5 changed files with 111 additions and 3 deletions

View File

@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd December 23, 2019
.Dd August 17, 2020
.Dt GPART 8
.Os
.Sh NAME
@ -312,7 +312,7 @@ option.
The partition cannot be actively used by the kernel.
.Pp
The
.cm delete
.Cm delete
command accepts these options:
.Bl -tag -width 10n
.It Fl f Ar flags
@ -755,6 +755,15 @@ for MBR,
for APM and
.Qq Li "!55465300-0000-11aa-aa11-00306543ecac"
for GPT.
.It Cm apple-zfs
An Apple Mac OS X partition that contains a ZFS volume.
The scheme-specific type is
.Qq Li "!6a898cc3-1dd2-11b2-99a6-080020736631"
for GPT. The same GUID is being used also for
.Sy illumos/Solaris /usr partition .
See
.Sx CAVEATS
section below.
.It Cm dragonfly-label32
A DragonFlyBSD partition subdivided into filesystems with a
.Bx
@ -920,7 +929,47 @@ notably those made by IBM.
The scheme-specific types are
.Qq Li "!65"
for MBR and
.Qq Li "!0x9e1a2d38-c612-4316-aa26-8b49521e5a8b"
.Qq Li "!9e1a2d38-c612-4316-aa26-8b49521e5a8b"
for GPT.
.It Cm solaris-boot
A illumos/Solaris partition dedicated to boot loader.
The scheme-specific type is
.Qq Li "!6a82cb45-1dd2-11b2-99a6-080020736631"
for GPT.
.It Cm solaris-root
A illumos/Solaris partition dedicated to root filesystem.
The scheme-specific type is
.Qq Li "!6a85cf4d-1dd2-11b2-99a6-080020736631"
for GPT.
.It Cm solaris-swap
A illumos/Solaris partition dedicated to swap.
The scheme-specific type is
.Qq Li "!6a87c46f-1dd2-11b2-99a6-080020736631"
for GPT.
.It Cm solaris-backup
A illumos/Solaris partition dedicated to backup.
The scheme-specific type is
.Qq Li "!6a8b642b-1dd2-11b2-99a6-080020736631"
for GPT.
.It Cm solaris-var
A illumos/Solaris partition dedicated to /var filesystem.
The scheme-specific type is
.Qq Li "!6a8ef2e9-1dd2-11b2-99a6-080020736631"
for GPT.
.It Cm solaris-home
A illumos/Solaris partition dedicated to /home filesystem.
The scheme-specific type is
.Qq Li "!6a90ba39-1dd2-11b2-99a6-080020736631"
for GPT.
.It Cm solaris-altsec
A illumos/Solaris partition dedicated to alternate sector.
The scheme-specific type is
.Qq Li "!6a9283a5-1dd2-11b2-99a6-080020736631"
for GPT.
.It Cm solaris-reserved
A illumos/Solaris partition dedicated to reserved space.
The scheme-specific type is
.Qq Li "!6a945a3b-1dd2-11b2-99a6-080020736631"
for GPT.
.It Cm vmware-vmfs
A partition that contains a VMware File System (VMFS).
@ -1466,3 +1515,8 @@ utility appeared in
.Fx 7.0 .
.Sh AUTHORS
.An Marcel Moolenaar Aq Mt marcel@FreeBSD.org
.Sh CAVEATS
Partition type
.Em apple-zfs
(6a898cc3-1dd2-11b2-99a6-080020736631) is also being used
on illumos/Solaris platforms for ZFS volumes.

View File

@ -76,6 +76,7 @@ struct g_part_alias_list {
{ "apple-raid-offline", G_PART_ALIAS_APPLE_RAID_OFFLINE },
{ "apple-tv-recovery", G_PART_ALIAS_APPLE_TV_RECOVERY },
{ "apple-ufs", G_PART_ALIAS_APPLE_UFS },
{ "apple-zfs", G_PART_ALIAS_APPLE_ZFS },
{ "bios-boot", G_PART_ALIAS_BIOS_BOOT },
{ "chromeos-firmware", G_PART_ALIAS_CHROMEOS_FIRMWARE },
{ "chromeos-kernel", G_PART_ALIAS_CHROMEOS_KERNEL },
@ -122,6 +123,14 @@ struct g_part_alias_list {
{ "ntfs", G_PART_ALIAS_MS_NTFS },
{ "openbsd-data", G_PART_ALIAS_OPENBSD_DATA },
{ "prep-boot", G_PART_ALIAS_PREP_BOOT },
{ "solaris-boot", G_PART_ALIAS_SOLARIS_BOOT },
{ "solaris-root", G_PART_ALIAS_SOLARIS_ROOT },
{ "solaris-swap", G_PART_ALIAS_SOLARIS_SWAP },
{ "solaris-backup", G_PART_ALIAS_SOLARIS_BACKUP },
{ "solaris-var", G_PART_ALIAS_SOLARIS_VAR },
{ "solaris-home", G_PART_ALIAS_SOLARIS_HOME },
{ "solaris-altsec", G_PART_ALIAS_SOLARIS_ALTSEC },
{ "solaris-reserved", G_PART_ALIAS_SOLARIS_RESERVED },
{ "vmware-reserved", G_PART_ALIAS_VMRESERVED },
{ "vmware-vmfs", G_PART_ALIAS_VMFS },
{ "vmware-vmkdiag", G_PART_ALIAS_VMKDIAG },

View File

@ -47,6 +47,8 @@ enum g_part_alias {
G_PART_ALIAS_APPLE_RAID_OFFLINE,/* An Apple RAID (offline) part entry.*/
G_PART_ALIAS_APPLE_TV_RECOVERY, /* An Apple TV recovery part entry. */
G_PART_ALIAS_APPLE_UFS, /* An Apple UFS partition entry. */
G_PART_ALIAS_APPLE_ZFS, /* An Apple ZFS partition entry.
Also used for Solaris /usr partition. */
G_PART_ALIAS_BIOS_BOOT, /* A GRUB 2 boot partition entry. */
G_PART_ALIAS_CHROMEOS_FIRMWARE, /* A ChromeOS firmware part. entry. */
G_PART_ALIAS_CHROMEOS_KERNEL, /* A ChromeOS Kernel part. entry. */
@ -93,6 +95,14 @@ enum g_part_alias {
G_PART_ALIAS_NETBSD_SWAP, /* A NetBSD swap partition entry. */
G_PART_ALIAS_OPENBSD_DATA, /* An OpenBSD data partition entry. */
G_PART_ALIAS_PREP_BOOT, /* A PREP/CHRP boot partition entry. */
G_PART_ALIAS_SOLARIS_BOOT, /* A Solaris boot partition entry. */
G_PART_ALIAS_SOLARIS_ROOT, /* A Solaris root partition entry. */
G_PART_ALIAS_SOLARIS_SWAP, /* A Solaris swap partition entry. */
G_PART_ALIAS_SOLARIS_BACKUP, /* A Solaris backup partition entry. */
G_PART_ALIAS_SOLARIS_VAR, /* A Solaris /var partition entry. */
G_PART_ALIAS_SOLARIS_HOME, /* A Solaris /home partition entry. */
G_PART_ALIAS_SOLARIS_ALTSEC, /* A Solaris alternate sector partition entry. */
G_PART_ALIAS_SOLARIS_RESERVED, /* A Solaris reserved partition entry. */
G_PART_ALIAS_VMFS, /* A VMware VMFS partition entry */
G_PART_ALIAS_VMKDIAG, /* A VMware vmkDiagnostic partition entry */
G_PART_ALIAS_VMRESERVED, /* A VMware reserved partition entry */

View File

@ -168,6 +168,7 @@ static struct uuid gpt_uuid_apple_raid = GPT_ENT_TYPE_APPLE_RAID;
static struct uuid gpt_uuid_apple_raid_offline = GPT_ENT_TYPE_APPLE_RAID_OFFLINE;
static struct uuid gpt_uuid_apple_tv_recovery = GPT_ENT_TYPE_APPLE_TV_RECOVERY;
static struct uuid gpt_uuid_apple_ufs = GPT_ENT_TYPE_APPLE_UFS;
static struct uuid gpt_uuid_apple_zfs = GPT_ENT_TYPE_APPLE_ZFS;
static struct uuid gpt_uuid_bios_boot = GPT_ENT_TYPE_BIOS_BOOT;
static struct uuid gpt_uuid_chromeos_firmware = GPT_ENT_TYPE_CHROMEOS_FIRMWARE;
static struct uuid gpt_uuid_chromeos_kernel = GPT_ENT_TYPE_CHROMEOS_KERNEL;
@ -209,6 +210,14 @@ static struct uuid gpt_uuid_netbsd_raid = GPT_ENT_TYPE_NETBSD_RAID;
static struct uuid gpt_uuid_netbsd_swap = GPT_ENT_TYPE_NETBSD_SWAP;
static struct uuid gpt_uuid_openbsd_data = GPT_ENT_TYPE_OPENBSD_DATA;
static struct uuid gpt_uuid_prep_boot = GPT_ENT_TYPE_PREP_BOOT;
static struct uuid gpt_uuid_solaris_boot = GPT_ENT_TYPE_SOLARIS_BOOT;
static struct uuid gpt_uuid_solaris_root = GPT_ENT_TYPE_SOLARIS_ROOT;
static struct uuid gpt_uuid_solaris_swap = GPT_ENT_TYPE_SOLARIS_SWAP;
static struct uuid gpt_uuid_solaris_backup = GPT_ENT_TYPE_SOLARIS_BACKUP;
static struct uuid gpt_uuid_solaris_var = GPT_ENT_TYPE_SOLARIS_VAR;
static struct uuid gpt_uuid_solaris_home = GPT_ENT_TYPE_SOLARIS_HOME;
static struct uuid gpt_uuid_solaris_altsec = GPT_ENT_TYPE_SOLARIS_ALTSEC;
static struct uuid gpt_uuid_solaris_reserved = GPT_ENT_TYPE_SOLARIS_RESERVED;
static struct uuid gpt_uuid_unused = GPT_ENT_TYPE_UNUSED;
static struct uuid gpt_uuid_vmfs = GPT_ENT_TYPE_VMFS;
static struct uuid gpt_uuid_vmkdiag = GPT_ENT_TYPE_VMKDIAG;
@ -229,6 +238,7 @@ static struct g_part_uuid_alias {
{ &gpt_uuid_apple_raid_offline, G_PART_ALIAS_APPLE_RAID_OFFLINE, 0 },
{ &gpt_uuid_apple_tv_recovery, G_PART_ALIAS_APPLE_TV_RECOVERY, 0 },
{ &gpt_uuid_apple_ufs, G_PART_ALIAS_APPLE_UFS, 0 },
{ &gpt_uuid_apple_zfs, G_PART_ALIAS_APPLE_ZFS, 0 },
{ &gpt_uuid_bios_boot, G_PART_ALIAS_BIOS_BOOT, 0 },
{ &gpt_uuid_chromeos_firmware, G_PART_ALIAS_CHROMEOS_FIRMWARE, 0 },
{ &gpt_uuid_chromeos_kernel, G_PART_ALIAS_CHROMEOS_KERNEL, 0 },
@ -270,6 +280,14 @@ static struct g_part_uuid_alias {
{ &gpt_uuid_netbsd_swap, G_PART_ALIAS_NETBSD_SWAP, 0 },
{ &gpt_uuid_openbsd_data, G_PART_ALIAS_OPENBSD_DATA, 0 },
{ &gpt_uuid_prep_boot, G_PART_ALIAS_PREP_BOOT, 0x41 },
{ &gpt_uuid_solaris_boot, G_PART_ALIAS_SOLARIS_BOOT, 0 },
{ &gpt_uuid_solaris_root, G_PART_ALIAS_SOLARIS_ROOT, 0 },
{ &gpt_uuid_solaris_swap, G_PART_ALIAS_SOLARIS_SWAP, 0 },
{ &gpt_uuid_solaris_backup, G_PART_ALIAS_SOLARIS_BACKUP, 0 },
{ &gpt_uuid_solaris_var, G_PART_ALIAS_SOLARIS_VAR, 0 },
{ &gpt_uuid_solaris_home, G_PART_ALIAS_SOLARIS_HOME, 0 },
{ &gpt_uuid_solaris_altsec, G_PART_ALIAS_SOLARIS_ALTSEC, 0 },
{ &gpt_uuid_solaris_reserved, G_PART_ALIAS_SOLARIS_RESERVED, 0 },
{ &gpt_uuid_vmfs, G_PART_ALIAS_VMFS, 0 },
{ &gpt_uuid_vmkdiag, G_PART_ALIAS_VMKDIAG, 0 },
{ &gpt_uuid_vmreserved, G_PART_ALIAS_VMRESERVED, 0 },

View File

@ -230,6 +230,23 @@ CTASSERT(sizeof(struct gpt_ent) == 128);
#define GPT_ENT_TYPE_OPENBSD_DATA \
{0x824cc7a0,0x36a8,0x11e3,0x89,0x0a,{0x95,0x25,0x19,0xad,0x3f,0x61}}
#define GPT_ENT_TYPE_SOLARIS_BOOT \
{0x6a82cb45,0x1dd2,0x11b2,0x99,0xa6,{0x08,0x00,0x20,0x73,0x66,0x31}}
#define GPT_ENT_TYPE_SOLARIS_ROOT \
{0x6a85cf4d,0x1dd2,0x11b2,0x99,0xa6,{0x08,0x00,0x20,0x73,0x66,0x31}}
#define GPT_ENT_TYPE_SOLARIS_SWAP \
{0x6a87c46f,0x1dd2,0x11b2,0x99,0xa6,{0x08,0x00,0x20,0x73,0x66,0x31}}
#define GPT_ENT_TYPE_SOLARIS_BACKUP \
{0x6a8b642b,0x1dd2,0x11b2,0x99,0xa6,{0x08,0x00,0x20,0x73,0x66,0x31}}
#define GPT_ENT_TYPE_SOLARIS_VAR \
{0x6a8ef2e9,0x1dd2,0x11b2,0x99,0xa6,{0x08,0x00,0x20,0x73,0x66,0x31}}
#define GPT_ENT_TYPE_SOLARIS_HOME \
{0x6a90ba39,0x1dd2,0x11b2,0x99,0xa6,{0x08,0x00,0x20,0x73,0x66,0x31}}
#define GPT_ENT_TYPE_SOLARIS_ALTSEC \
{0x6a9283a5,0x1dd2,0x11b2,0x99,0xa6,{0x08,0x00,0x20,0x73,0x66,0x31}}
#define GPT_ENT_TYPE_SOLARIS_RESERVED \
{0x6a945a3b,0x1dd2,0x11b2,0x99,0xa6,{0x08,0x00,0x20,0x73,0x66,0x31}}
/*
* Boot partition used by GRUB 2.
*/