Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Aug 2020 17:07:06 +0000 (UTC)
From:      Conrad Meyer <cem@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r364316 - in head: lib/geom/part sys/geom/part sys/sys/disk
Message-ID:  <202008171707.07HH76p6014419@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: cem
Date: Mon Aug 17 17:07:05 2020
New Revision: 364316
URL: https://svnweb.freebsd.org/changeset/base/364316

Log:
  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

Modified:
  head/lib/geom/part/gpart.8
  head/sys/geom/part/g_part.c
  head/sys/geom/part/g_part.h
  head/sys/geom/part/g_part_gpt.c
  head/sys/sys/disk/gpt.h

Modified: head/lib/geom/part/gpart.8
==============================================================================
--- head/lib/geom/part/gpart.8	Mon Aug 17 16:51:21 2020	(r364315)
+++ head/lib/geom/part/gpart.8	Mon Aug 17 17:07:05 2020	(r364316)
@@ -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,8 +929,48 @@ 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).
 The scheme-specific types are
@@ -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.

Modified: head/sys/geom/part/g_part.c
==============================================================================
--- head/sys/geom/part/g_part.c	Mon Aug 17 16:51:21 2020	(r364315)
+++ head/sys/geom/part/g_part.c	Mon Aug 17 17:07:05 2020	(r364316)
@@ -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 },

Modified: head/sys/geom/part/g_part.h
==============================================================================
--- head/sys/geom/part/g_part.h	Mon Aug 17 16:51:21 2020	(r364315)
+++ head/sys/geom/part/g_part.h	Mon Aug 17 17:07:05 2020	(r364316)
@@ -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 */

Modified: head/sys/geom/part/g_part_gpt.c
==============================================================================
--- head/sys/geom/part/g_part_gpt.c	Mon Aug 17 16:51:21 2020	(r364315)
+++ head/sys/geom/part/g_part_gpt.c	Mon Aug 17 17:07:05 2020	(r364316)
@@ -168,6 +168,7 @@ static struct uuid gpt_uuid_apple_raid = GPT_ENT_TYPE_
 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
 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 },

Modified: head/sys/sys/disk/gpt.h
==============================================================================
--- head/sys/sys/disk/gpt.h	Mon Aug 17 16:51:21 2020	(r364315)
+++ head/sys/sys/disk/gpt.h	Mon Aug 17 17:07:05 2020	(r364316)
@@ -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.
  */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202008171707.07HH76p6014419>