diff --git a/sbin/geom/class/concat/geom_concat.c b/sbin/geom/class/concat/geom_concat.c
index 7334f6daeb4d..80fe26bedef0 100644
--- a/sbin/geom/class/concat/geom_concat.c
+++ b/sbin/geom/class/concat/geom_concat.c
@@ -59,7 +59,7 @@ struct g_command class_commands[] = {
 	},
 	{ "destroy", G_FLAG_VERBOSE, NULL,
 	    {
-		{ 'f', "force", NULL, G_TYPE_NONE },
+		{ 'f', "force", NULL, G_TYPE_BOOL },
 		G_OPT_SENTINEL
 	    },
 	    "[-fv] name ..."
@@ -69,14 +69,14 @@ struct g_command class_commands[] = {
 	},
 	{ "label", G_FLAG_VERBOSE | G_FLAG_LOADKLD, concat_main,
 	    {
-		{ 'h', "hardcode", NULL, G_TYPE_NONE },
+		{ 'h', "hardcode", NULL, G_TYPE_BOOL },
 		G_OPT_SENTINEL
 	    },
 	    "[-hv] name prov ..."
 	},
 	{ "stop", G_FLAG_VERBOSE, NULL,
 	    {
-		{ 'f', "force", NULL, G_TYPE_NONE },
+		{ 'f', "force", NULL, G_TYPE_BOOL },
 		G_OPT_SENTINEL
 	    },
 	    "[-fv] name ..."
diff --git a/sbin/geom/class/eli/geom_eli.c b/sbin/geom/class/eli/geom_eli.c
index bb17af8963b8..85ca83e69174 100644
--- a/sbin/geom/class/eli/geom_eli.c
+++ b/sbin/geom/class/eli/geom_eli.c
@@ -96,12 +96,12 @@ struct g_command class_commands[] = {
 	{ "init", G_FLAG_VERBOSE, eli_main,
 	    {
 		{ 'a', "aalgo", aalgo, G_TYPE_STRING },
-		{ 'b', "boot", NULL, G_TYPE_NONE },
+		{ 'b', "boot", NULL, G_TYPE_BOOL },
 		{ 'e', "ealgo", ealgo, G_TYPE_STRING },
 		{ 'i', "iterations", &iterations, G_TYPE_NUMBER },
 		{ 'K', "newkeyfile", newkeyfile, G_TYPE_STRING },
 		{ 'l', "keylen", &keylen, G_TYPE_NUMBER },
-		{ 'P', "nonewpassphrase", NULL, G_TYPE_NONE },
+		{ 'P', "nonewpassphrase", NULL, G_TYPE_BOOL },
 		{ 's', "sectorsize", &sectorsize, G_TYPE_NUMBER },
 		G_OPT_SENTINEL
 	    },
@@ -110,12 +110,12 @@ struct g_command class_commands[] = {
 	{ "label", G_FLAG_VERBOSE, eli_main,
 	    {
 		{ 'a', "aalgo", aalgo, G_TYPE_STRING },
-		{ 'b', "boot", NULL, G_TYPE_NONE },
+		{ 'b', "boot", NULL, G_TYPE_BOOL },
 		{ 'e', "ealgo", ealgo, G_TYPE_STRING },
 		{ 'i', "iterations", &iterations, G_TYPE_NUMBER },
 		{ 'K', "newkeyfile", newkeyfile, G_TYPE_STRING },
 		{ 'l', "keylen", &keylen, G_TYPE_NUMBER },
-		{ 'P', "nonewpassphrase", NULL, G_TYPE_NONE },
+		{ 'P', "nonewpassphrase", NULL, G_TYPE_BOOL },
 		{ 's', "sectorsize", &sectorsize, G_TYPE_NUMBER },
 		G_OPT_SENTINEL
 	    },
@@ -123,26 +123,26 @@ struct g_command class_commands[] = {
 	},
 	{ "attach", G_FLAG_VERBOSE | G_FLAG_LOADKLD, eli_main,
 	    {
-		{ 'd', "detach", NULL, G_TYPE_NONE },
+		{ 'd', "detach", NULL, G_TYPE_BOOL },
 		{ 'k', "keyfile", keyfile, G_TYPE_STRING },
-		{ 'p', "nopassphrase", NULL, G_TYPE_NONE },
-		{ 'r', "readonly", NULL, G_TYPE_NONE },
+		{ 'p', "nopassphrase", NULL, G_TYPE_BOOL },
+		{ 'r', "readonly", NULL, G_TYPE_BOOL },
 		G_OPT_SENTINEL
 	    },
 	    "[-dprv] [-k keyfile] prov"
 	},
 	{ "detach", 0, NULL,
 	    {
-		{ 'f', "force", NULL, G_TYPE_NONE },
-		{ 'l', "last", NULL, G_TYPE_NONE },
+		{ 'f', "force", NULL, G_TYPE_BOOL },
+		{ 'l', "last", NULL, G_TYPE_BOOL },
 		G_OPT_SENTINEL
 	    },
 	    "[-fl] prov ..."
 	},
 	{ "stop", 0, NULL,
 	    {
-		{ 'f', "force", NULL, G_TYPE_NONE },
-		{ 'l', "last", NULL, G_TYPE_NONE },
+		{ 'f', "force", NULL, G_TYPE_BOOL },
+		{ 'l', "last", NULL, G_TYPE_BOOL },
 		G_OPT_SENTINEL
 	    },
 	    "- an alias for 'detach'"
@@ -150,7 +150,7 @@ struct g_command class_commands[] = {
 	{ "onetime", G_FLAG_VERBOSE | G_FLAG_LOADKLD, NULL,
 	    {
 		{ 'a', "aalgo", aalgo, G_TYPE_STRING },
-		{ 'd', "detach", NULL, G_TYPE_NONE },
+		{ 'd', "detach", NULL, G_TYPE_BOOL },
 		{ 'e', "ealgo", ealgo, G_TYPE_STRING },
 		{ 'l', "keylen", &keylen, G_TYPE_NUMBER },
 		{ 's', "sectorsize", &sectorsize, G_TYPE_NUMBER },
@@ -160,8 +160,8 @@ struct g_command class_commands[] = {
 	},
 	{ "configure", G_FLAG_VERBOSE, eli_main,
 	    {
-		{ 'b', "boot", NULL, G_TYPE_NONE },
-		{ 'B', "noboot", NULL, G_TYPE_NONE },
+		{ 'b', "boot", NULL, G_TYPE_BOOL },
+		{ 'B', "noboot", NULL, G_TYPE_BOOL },
 		G_OPT_SENTINEL
 	    },
 	    "[-bB] prov ..."
@@ -172,16 +172,16 @@ struct g_command class_commands[] = {
 		{ 'k', "keyfile", keyfile, G_TYPE_STRING },
 		{ 'K', "newkeyfile", newkeyfile, G_TYPE_STRING },
 		{ 'n', "keyno", &keyno, G_TYPE_NUMBER },
-		{ 'p', "nopassphrase", NULL, G_TYPE_NONE },
-		{ 'P', "nonewpassphrase", NULL, G_TYPE_NONE },
+		{ 'p', "nopassphrase", NULL, G_TYPE_BOOL },
+		{ 'P', "nonewpassphrase", NULL, G_TYPE_BOOL },
 		G_OPT_SENTINEL
 	    },
 	    "[-pPv] [-n keyno] [-i iterations] [-k keyfile] [-K newkeyfile] prov"
 	},
 	{ "delkey", G_FLAG_VERBOSE, eli_main,
 	    {
-		{ 'a', "all", NULL, G_TYPE_NONE },
-		{ 'f', "force", NULL, G_TYPE_NONE },
+		{ 'a', "all", NULL, G_TYPE_BOOL },
+		{ 'f', "force", NULL, G_TYPE_BOOL },
 		{ 'n', "keyno", &keyno, G_TYPE_NUMBER },
 		G_OPT_SENTINEL
 	    },
@@ -189,7 +189,7 @@ struct g_command class_commands[] = {
 	},
 	{ "kill", G_FLAG_VERBOSE, eli_main,
 	    {
-		{ 'a', "all", NULL, G_TYPE_NONE },
+		{ 'a', "all", NULL, G_TYPE_BOOL },
 		G_OPT_SENTINEL
 	    },
 	    "[-av] [prov ...]"
diff --git a/sbin/geom/class/label/geom_label.c b/sbin/geom/class/label/geom_label.c
index a45eb4d35d57..c3bdebcc7b2c 100644
--- a/sbin/geom/class/label/geom_label.c
+++ b/sbin/geom/class/label/geom_label.c
@@ -58,7 +58,7 @@ struct g_command class_commands[] = {
 	},
 	{ "destroy", G_FLAG_VERBOSE, NULL,
 	    {
-		{ 'f', "force", NULL, G_TYPE_NONE },
+		{ 'f', "force", NULL, G_TYPE_BOOL },
 		G_OPT_SENTINEL
 	    },
 	    "[-fv] name ..."
@@ -71,7 +71,7 @@ struct g_command class_commands[] = {
 	},
 	{ "stop", G_FLAG_VERBOSE, NULL,
 	    {
-		{ 'f', "force", NULL, G_TYPE_NONE },
+		{ 'f', "force", NULL, G_TYPE_BOOL },
 		G_OPT_SENTINEL
 	    },
 	    "[-fv] name ..."
diff --git a/sbin/geom/class/mirror/geom_mirror.c b/sbin/geom/class/mirror/geom_mirror.c
index 68f66066b405..2f9d5dcb1a1f 100644
--- a/sbin/geom/class/mirror/geom_mirror.c
+++ b/sbin/geom/class/mirror/geom_mirror.c
@@ -64,11 +64,11 @@ struct g_command class_commands[] = {
 	},
 	{ "configure", G_FLAG_VERBOSE, NULL,
 	    {
-		{ 'a', "autosync", NULL, G_TYPE_NONE },
+		{ 'a', "autosync", NULL, G_TYPE_BOOL },
 		{ 'b', "balance", configure_balance, G_TYPE_STRING },
-		{ 'd', "dynamic", NULL, G_TYPE_NONE },
-		{ 'h', "hardcode", NULL, G_TYPE_NONE },
-		{ 'n', "noautosync", NULL, G_TYPE_NONE },
+		{ 'd', "dynamic", NULL, G_TYPE_BOOL },
+		{ 'h', "hardcode", NULL, G_TYPE_BOOL },
+		{ 'n', "noautosync", NULL, G_TYPE_BOOL },
 		{ 's', "slice", &configure_slice, G_TYPE_NUMBER },
 		G_OPT_SENTINEL
 	    },
@@ -86,8 +86,8 @@ struct g_command class_commands[] = {
 	{ "label", G_FLAG_VERBOSE, mirror_main,
 	    {
 		{ 'b', "balance", label_balance, G_TYPE_STRING },
-		{ 'h', "hardcode", NULL, G_TYPE_NONE },
-		{ 'n', "noautosync", NULL, G_TYPE_NONE },
+		{ 'h', "hardcode", NULL, G_TYPE_BOOL },
+		{ 'n', "noautosync", NULL, G_TYPE_BOOL },
 		{ 's', "slice", &label_slice, G_TYPE_NUMBER },
 		G_OPT_SENTINEL
 	    },
@@ -95,8 +95,8 @@ struct g_command class_commands[] = {
 	},
 	{ "insert", G_FLAG_VERBOSE, NULL,
 	    {
-		{ 'h', "hardcode", NULL, G_TYPE_NONE },
-		{ 'i', "inactive", NULL, G_TYPE_NONE },
+		{ 'h', "hardcode", NULL, G_TYPE_BOOL },
+		{ 'i', "inactive", NULL, G_TYPE_BOOL },
 		{ 'p', "priority", &insert_priority, G_TYPE_NUMBER },
 		G_OPT_SENTINEL
 	    },
@@ -110,7 +110,7 @@ struct g_command class_commands[] = {
 	},
 	{ "stop", G_FLAG_VERBOSE, NULL,
 	    {
-		{ 'f', "force", NULL, G_TYPE_NONE },
+		{ 'f', "force", NULL, G_TYPE_BOOL },
 		G_OPT_SENTINEL
 	    },
 	    "[-fv] name ..."
diff --git a/sbin/geom/class/nop/geom_nop.c b/sbin/geom/class/nop/geom_nop.c
index 0de2856c2f74..e33ee541802b 100644
--- a/sbin/geom/class/nop/geom_nop.c
+++ b/sbin/geom/class/nop/geom_nop.c
@@ -70,7 +70,7 @@ struct g_command class_commands[] = {
 	},
 	{ "destroy", G_FLAG_VERBOSE, NULL,
 	    {
-		{ 'f', "force", NULL, G_TYPE_NONE },
+		{ 'f', "force", NULL, G_TYPE_BOOL },
 		G_OPT_SENTINEL
 	    },
 	    "[-fv] prov ..."
diff --git a/sbin/geom/class/raid3/geom_raid3.c b/sbin/geom/class/raid3/geom_raid3.c
index e8fa1810f6c1..7e0d1d2acaa7 100644
--- a/sbin/geom/class/raid3/geom_raid3.c
+++ b/sbin/geom/class/raid3/geom_raid3.c
@@ -56,14 +56,14 @@ struct g_command class_commands[] = {
 	},
 	{ "configure", G_FLAG_VERBOSE, NULL,
 	    {
-		{ 'a', "autosync", NULL, G_TYPE_NONE },
-		{ 'd', "dynamic", NULL, G_TYPE_NONE },
-		{ 'h', "hardcode", NULL, G_TYPE_NONE },
-		{ 'n', "noautosync", NULL, G_TYPE_NONE },
-		{ 'r', "round_robin", NULL, G_TYPE_NONE },
-		{ 'R', "noround_robin", NULL, G_TYPE_NONE },
-		{ 'w', "verify", NULL, G_TYPE_NONE },
-		{ 'W', "noverify", NULL, G_TYPE_NONE },
+		{ 'a', "autosync", NULL, G_TYPE_BOOL },
+		{ 'd', "dynamic", NULL, G_TYPE_BOOL },
+		{ 'h', "hardcode", NULL, G_TYPE_BOOL },
+		{ 'n', "noautosync", NULL, G_TYPE_BOOL },
+		{ 'r', "round_robin", NULL, G_TYPE_BOOL },
+		{ 'R', "noround_robin", NULL, G_TYPE_BOOL },
+		{ 'w', "verify", NULL, G_TYPE_BOOL },
+		{ 'W', "noverify", NULL, G_TYPE_BOOL },
 		G_OPT_SENTINEL
 	    },
 	    "[-adhnrRvwW] name"
@@ -73,7 +73,7 @@ struct g_command class_commands[] = {
 	},
 	{ "insert", G_FLAG_VERBOSE, NULL,
 	    {
-		{ 'h', "hardcode", NULL, G_TYPE_NONE },
+		{ 'h', "hardcode", NULL, G_TYPE_BOOL },
 		{ 'n', "number", NULL, G_TYPE_NUMBER },
 		G_OPT_SENTINEL
 	    },
@@ -81,10 +81,10 @@ struct g_command class_commands[] = {
 	},
 	{ "label", G_FLAG_VERBOSE, raid3_main,
 	    {
-		{ 'h', "hardcode", NULL, G_TYPE_NONE },
-		{ 'n', "noautosync", NULL, G_TYPE_NONE },
-		{ 'r', "round_robin", NULL, G_TYPE_NONE },
-		{ 'w', "verify", NULL, G_TYPE_NONE },
+		{ 'h', "hardcode", NULL, G_TYPE_BOOL },
+		{ 'n', "noautosync", NULL, G_TYPE_BOOL },
+		{ 'r', "round_robin", NULL, G_TYPE_BOOL },
+		{ 'w', "verify", NULL, G_TYPE_BOOL },
 		G_OPT_SENTINEL
 	    },
 	    "[-hnrvw] name prov prov prov ..."
@@ -101,7 +101,7 @@ struct g_command class_commands[] = {
 	},
 	{ "stop", G_FLAG_VERBOSE, NULL,
 	    {
-		{ 'f', "force", NULL, G_TYPE_NONE },
+		{ 'f', "force", NULL, G_TYPE_BOOL },
 		G_OPT_SENTINEL
 	    },
 	    "[-fv] name ..."
diff --git a/sbin/geom/class/shsec/geom_shsec.c b/sbin/geom/class/shsec/geom_shsec.c
index c5b81638c9c2..75791de6ac0f 100644
--- a/sbin/geom/class/shsec/geom_shsec.c
+++ b/sbin/geom/class/shsec/geom_shsec.c
@@ -60,14 +60,14 @@ struct g_command class_commands[] = {
 	},
 	{ "label", G_FLAG_VERBOSE | G_FLAG_LOADKLD, shsec_main,
 	    {
-		{ 'h', "hardcode", NULL, G_TYPE_NONE },
+		{ 'h', "hardcode", NULL, G_TYPE_BOOL },
 		G_OPT_SENTINEL
 	    },
 	    "[-hv] name prov prov ..."
 	},
 	{ "stop", G_FLAG_VERBOSE, NULL,
 	    {
-		{ 'f', "force", NULL, G_TYPE_NONE },
+		{ 'f', "force", NULL, G_TYPE_BOOL },
 		G_OPT_SENTINEL
 	    },
 	    "[-fv] name ..."
diff --git a/sbin/geom/class/stripe/geom_stripe.c b/sbin/geom/class/stripe/geom_stripe.c
index b0e8aa380359..1e3364364a19 100644
--- a/sbin/geom/class/stripe/geom_stripe.c
+++ b/sbin/geom/class/stripe/geom_stripe.c
@@ -66,7 +66,7 @@ struct g_command class_commands[] = {
 	},
 	{ "destroy", G_FLAG_VERBOSE, NULL,
 	    {
-		{ 'f', "force", NULL, G_TYPE_NONE },
+		{ 'f', "force", NULL, G_TYPE_BOOL },
 		G_OPT_SENTINEL
 	    },
 	    "[-fv] name ..."
@@ -76,7 +76,7 @@ struct g_command class_commands[] = {
 	},
 	{ "label", G_FLAG_VERBOSE | G_FLAG_LOADKLD, stripe_main,
 	    {
-		{ 'h', "hardcode", NULL, G_TYPE_NONE },
+		{ 'h', "hardcode", NULL, G_TYPE_BOOL },
 		{ 's', "stripesize", &default_stripesize, G_TYPE_NUMBER },
 		G_OPT_SENTINEL
 	    },
@@ -84,7 +84,7 @@ struct g_command class_commands[] = {
 	},
 	{ "stop", G_FLAG_VERBOSE, NULL,
 	    {
-		{ 'f', "force", NULL, G_TYPE_NONE },
+		{ 'f', "force", NULL, G_TYPE_BOOL },
 		G_OPT_SENTINEL
 	    },
 	    "[-fv] name ..."