--- a/usr/src/cmd/beadm/beadm.c Mon Jul 09 21:10:26 2012 +0100
+++ b/usr/src/cmd/beadm/beadm.c Tue Jul 24 04:11:09 2012 -0500
@@ -123,21 +123,21 @@
"\n"
"\tsubcommands:\n"
"\n"
- "\tbeadm activate beName\n"
- "\tbeadm create [-d BE_desc]\n"
+ "\tbeadm activate [-v] beName\n"
+ "\tbeadm create [-a] [-d BE_desc]\n"
"\t\t[-o property=value] ... [-p zpool] \n"
- "\t\t[-e nonActiveBe | beName@snapshot] beName\n"
+ "\t\t[-e nonActiveBe | beName@snapshot] [-v] beName\n"
"\tbeadm create [-d BE_desc]\n"
- "\t\t[-o property=value] ... [-p zpool] beName@snapshot\n"
- "\tbeadm destroy [-Ffs] beName \n"
- "\tbeadm destroy [-F] beName@snapshot \n"
- "\tbeadm list [[-a] | [-d] [-s]] [-H] [beName]\n"
- "\tbeadm mount [-s ro|rw] beName [mountpoint]\n"
- "\tbeadm unmount [-f] beName | mountpoint\n"
- "\tbeadm umount [-f] beName | mountpoint\n"
- "\tbeadm rename origBeName newBeName\n"
- "\tbeadm rollback beName snapshot\n"
- "\tbeadm rollback beName@snapshot\n"));
+ "\t\t[-o property=value] ... [-p zpool] [-v] beName@snapshot\n"
+ "\tbeadm destroy [-Ffsv] beName \n"
+ "\tbeadm destroy [-Fv] beName@snapshot \n"
+ "\tbeadm list [[-a] | [-d] [-s]] [-H] [-v] [beName]\n"
+ "\tbeadm mount [-s ro|rw] [-v] beName [mountpoint]\n"
+ "\tbeadm unmount [-fv] beName | mountpoint\n"
+ "\tbeadm umount [-fv] beName | mountpoint\n"
+ "\tbeadm rename [-v] origBeName newBeName\n"
+ "\tbeadm rollback [-v] beName snapshot\n"
+ "\tbeadm rollback [-v] beName@snapshot\n"));
}
static int
@@ -664,8 +664,20 @@
{
nvlist_t *be_attrs;
int err = 1;
+ int c;
char *obe_name;
+ while ((c = getopt(argc, argv, "v")) != -1) {
+ switch (c) {
+ case 'v':
+ libbe_print_errors(B_TRUE);
+ break;
+ default:
+ usage();
+ return (1);
+ }
+ }
+
argc -= optind;
argv += optind;
@@ -728,7 +740,7 @@
char *propval = NULL;
char *strval = NULL;
- while ((c = getopt(argc, argv, "ad:e:io:p:")) != -1) {
+ while ((c = getopt(argc, argv, "ad:e:io:p:v")) != -1) {
switch (c) {
case 'a':
activate = B_TRUE;
@@ -766,6 +778,9 @@
case 'p':
nbe_zpool = optarg;
break;
+ case 'v':
+ libbe_print_errors(B_TRUE);
+ break;
default:
usage();
goto out2;
@@ -939,7 +954,7 @@
char *snap_name;
char *be_name;
- while ((c = getopt(argc, argv, "fFs")) != -1) {
+ while ((c = getopt(argc, argv, "fFsv")) != -1) {
switch (c) {
case 'f':
destroy_flags |= BE_DESTROY_FLAG_FORCE_UNMOUNT;
@@ -947,6 +962,9 @@
case 's':
destroy_flags |= BE_DESTROY_FLAG_SNAPSHOTS;
break;
+ case 'v':
+ libbe_print_errors(B_TRUE);
+ break;
case 'F':
suppress_prompt = B_TRUE;
break;
@@ -1061,7 +1079,7 @@
int c = 0;
char *be_name = NULL;
- while ((c = getopt(argc, argv, "nadsH")) != -1) {
+ while ((c = getopt(argc, argv, "adsvH")) != -1) {
switch (c) {
case 'a':
all = B_TRUE;
@@ -1072,6 +1090,9 @@
case 's':
snaps = B_TRUE;
break;
+ case 'v':
+ libbe_print_errors(B_TRUE);
+ break;
case 'H':
parsable = B_TRUE;
break;
@@ -1145,7 +1166,7 @@
char *mountpoint;
char *tmp_mp = NULL;
- while ((c = getopt(argc, argv, "s:")) != -1) {
+ while ((c = getopt(argc, argv, "s:v")) != -1) {
switch (c) {
case 's':
shared_fs = B_TRUE;
@@ -1162,6 +1183,9 @@
}
break;
+ case 'v':
+ libbe_print_errors(B_TRUE);
+ break;
default:
usage();
return (1);
@@ -1223,7 +1247,6 @@
(void) printf(_("Mounted successfully on: '%s'\n"), mountpoint);
break;
case BE_ERR_BE_NOENT:
- err = 1;
(void) fprintf(stderr, _("%s does not exist or appear "
"to be a valid BE.\nPlease check that the name of "
"the BE provided is correct.\n"), obe_name);
@@ -1235,13 +1258,11 @@
break;
case BE_ERR_PERM:
case BE_ERR_ACCESS:
- err = 1;
(void) fprintf(stderr, _("Unable to mount %s.\n"), obe_name);
(void) fprintf(stderr, _("You have insufficient privileges to "
"execute this command.\n"));
break;
default:
- err = 1;
(void) fprintf(stderr, _("Unable to mount %s.\n"), obe_name);
(void) fprintf(stderr, "%s\n", be_err_to_str(err));
}
@@ -1262,11 +1283,14 @@
int c;
int unmount_flags = 0;
- while ((c = getopt(argc, argv, "f")) != -1) {
+ while ((c = getopt(argc, argv, "fv")) != -1) {
switch (c) {
case 'f':
unmount_flags |= BE_UNMOUNT_FLAG_FORCE;
break;
+ case 'v':
+ libbe_print_errors(B_TRUE);
+ break;
default:
usage();
return (1);
@@ -1337,6 +1361,18 @@
char *obe_name;
char *nbe_name;
int err = 1;
+ int c;
+
+ while ((c = getopt(argc, argv, "v")) != -1) {
+ switch (c) {
+ case 'v':
+ libbe_print_errors(B_TRUE);
+ break;
+ default:
+ usage();
+ return (1);
+ }
+ }
argc -= optind;
argv += optind;
@@ -1394,6 +1430,18 @@
char *obe_name;
char *snap_name;
int err = 1;
+ int c;
+
+ while ((c = getopt(argc, argv, "v")) != -1) {
+ switch (c) {
+ case 'v':
+ libbe_print_errors(B_TRUE);
+ break;
+ default:
+ usage();
+ return (1);
+ }
+ }
argc -= optind;
argv += optind;
--- a/usr/src/man/man1m/beadm.1m Mon Jul 09 21:10:26 2012 +0100
+++ b/usr/src/man/man1m/beadm.1m Tue Jul 24 04:11:09 2012 -0500
@@ -6,54 +6,55 @@
.SH SYNOPSIS
.LP
.nf
-\fBbeadm\fR create [\fB-a\fR] [\fB-d\fR \fIdescription\fR]
+\fBbeadm\fR \fBcreate\fR [\fB-a\fR] [\fB-d\fR \fIdescription\fR]
[\fB-e\fR \fInon-activeBeName\fR | \fIbeName@snapshot\fR]
- [\fB-o\fR \fIproperty=value\fR] ... [\fB-p\fR \fIzpool\FI] \fIbeName\fR
+ [\fB-o\fR \fIproperty=value\fR] ... [\fB-p\fR \fIzpool\fR]
+ [\fB-v\fR] \fIbeName\fR
.fi
.LP
.nf
-\fBbeadm\fR \fBcreate\fR \fIbeName@snapshot\fR
+\fBbeadm\fR \fBcreate\fR [\fB-v\fR] \fIbeName@snapshot\fR
.fi
.LP
.nf
-\fBbeadm\fR \fBdestroy\fR [\fB-fFs\fR] \fIbeName\fR | \fIbeName@snapshot\fR
+\fBbeadm\fR \fBdestroy\fR [\fB-fFsv\fR] \fIbeName\fR | \fIbeName@snapshot\fR
.fi
.LP
.nf
-\fBbeadm\fR \fBlist\fR [\fB-a\fR | \fB-ds\fR] [\fB-H\fR] [\fIbeName\fR]
+\fBbeadm\fR \fBlist\fR [\fB-a\fR | \fB-ds\fR] [\fB-H\fR] [\fB-v\fR] [\fIbeName\fR]
.fi
.LP
.nf
-\fBbeadm\fR \fBmount\fR \fIbeName\fR \fImountpoint\fR
+\fBbeadm\fR \fBmount\fR [\fB-v\fR] \fIbeName\fR \fImountpoint\fR
.fi
.LP
.nf
-\fBbeadm\fR \fBunmount\fR [\fB-f\fR] \fIbeName\fR | \fImountpoint\fR
+\fBbeadm\fR \fBunmount\fR [\fB-fv\fR] \fIbeName\fR | \fImountpoint\fR
.fi
.LP
.nf
-\fBbeadm\fR \fBrename\fR \fIbeName\fR \fInewBeName\fR
+\fBbeadm\fR \fBrename\fR [\fB-v\fR] \fIbeName\fR \fInewBeName\fR
.fi
.LP
.nf
-\fBbeadm\fR \fBactivate\fR \fIbeName\fR
+\fBbeadm\fR \fBactivate\fR [\fB-v\fR] \fIbeName\fR
.fi
.LP
.nf
-\fBbeadm\fR \fBrollback\fR \fIbeName\fR \fIsnapshot\fR
+\fBbeadm\fR \fBrollback\fR [\fB-v\fR] \fIbeName\fR \fIsnapshot\fR
.fi
.LP
.nf
-\fBbeadm\fR \fBrollback\fR \fIbeName@snapshot\fR
+\fBbeadm\fR \fBrollback\fR [\fB-v\fR] \fIbeName@snapshot\fR
.fi
.SH DESCRIPTION
@@ -160,9 +161,9 @@
.ne 2
.na
\fBbeadm\fR \fBcreate\fR [\fB-a\fR] [\fB-d\fR \fIdescription\fR]
-[\fB-e\fR \fInon-activeBeName\fR | \fIbeName@snapshot\fR]
- [\fB-o\fR
-\fIproperty=value\fR] ... [\fB-p\fR \fIzpool\fR] \fIbeName\fR
+ [\fB-e\fR \fInon-activeBeName\fR | \fIbeName@snapshot\fR]
+ [\fB-o\fR \fIproperty=value\fR] ... [\fB-p\fR \fIzpool\fR]
+ [\fB-v\fR] \fIbeName\fR
.ad
.sp .6
@@ -239,22 +240,40 @@
default
behavior is to create the new BE in the same pool as as the origin BE.
.RE
+.sp
+.ne 2
+.na
+\fB-v\fR
+.ad
+.sp .6
+.RS 4n
+Verbose mode. Displays verbose error messages from \fBbeadm\fR.
+.RE
.RE
.sp
.ne 2
.na
-\fBbeadm\fR \fBcreate\fR \fIbeName@snapshot\fR
+\fBbeadm\fR \fBcreate\fR [\fB-v\fR] \fIbeName@snapshot\fR
.ad
.sp .6
.RS 4n
Creates a snapshot of the existing BE named beName.
+.sp
+.ne 2
+.na
+\fB-v\fR
+.ad
+.sp .6
+.RS 4n
+Verbose mode. Displays verbose error messages from \fBbeadm\fR.
+.RE
.RE
.sp
.ne 2
.na
-\fBbeadm\fR \fBdestroy\fR [\fB-fFs\fR] \fIbeName\fR | \fIbeName@snapshot\fR
+\fBbeadm\fR \fBdestroy\fR [\fB-fFsv\fR] \fIbeName\fR | \fIbeName@snapshot\fR
.ad
.sp .6
.RS 4n
@@ -294,12 +313,21 @@
Destroy all snapshots of the boot
environment.
.RE
+.sp
+.ne 2
+.na
+\fB-v\fR
+.ad
+.sp .6
+.RS 4n
+Verbose mode. Displays verbose error messages from \fBbeadm\fR.
+.RE
.RE
.sp
.ne 2
.na
-\fBbeadm\fR \fBlist\fR [\fB-a\fR | \fB-ds\fR] [\fB-H\fR] [\fIbeName\fR]
+\fBbeadm\fR \fBlist\fR [\fB-a\fR | \fB-ds\fR] [\fB-H\fR] [\fB-v\fR] [\fIbeName\fR]
.ad
.sp .6
.RS 4n
@@ -358,23 +386,41 @@
Do not list header information. Each field in the list information is
separated by a semicolon.
.RE
+.sp
+.ne 2
+.na
+\fB-v\fR
+.ad
+.sp .6
+.RS 4n
+Verbose mode. Displays verbose error messages from \fBbeadm\fR.
+.RE
.RE
.sp
.ne 2
.na
-\fBbeadm\fR \fBmount\fR \fIbeName\fR \fImountpoint\fR
+\fBbeadm\fR \fBmount\fR [\fB-v\fR] \fIbeName\fR \fImountpoint\fR
.ad
.sp .6
.RS 4n
Mounts a boot environment named beName at mountpoint. mountpoint must be an
already existing empty directory.
+.sp
+.ne 2
+.na
+\fB-v\fR
+.ad
+.sp .6
+.RS 4n
+Verbose mode. Displays verbose error messages from \fBbeadm\fR.
+.RE
.RE
.sp
.ne 2
.na
-\fBbeadm\fR \fBunmount\fR [\fB-f\fR] \fIbeName\fR | \fImountpoint\fR
+\fBbeadm\fR \fBunmount\fR [\fB-fv\fR] \fIbeName\fR | \fImountpoint\fR
.ad
.sp .6
.RS 4n
@@ -389,37 +435,73 @@
.RS 4n
Forcefully unmount the boot environment even if its currently busy.
.RE
+.sp
+.ne 2
+.na
+\fB-v\fR
+.ad
+.sp .6
+.RS 4n
+Verbose mode. Displays verbose error messages from \fBbeadm\fR.
+.RE
.RE
.sp
.ne 2
.na
-\fBbeadm\fR \fBrename\fR \fIbeName\fR \fInewBeName\fR
+\fBbeadm\fR \fBrename\fR [\fB-v\fR] \fIbeName\fR \fInewBeName\fR
.ad
.sp .6
.RS 4n
Renames the boot environment named \fIbeName\fR to \fInewBeName\fR.
+.sp
+.ne 2
+.na
+\fB-v\fR
+.ad
+.sp .6
+.RS 4n
+Verbose mode. Displays verbose error messages from \fBbeadm\fR.
+.RE
.RE
.sp
.ne 2
.na
-\fBbeadm\fR \fBrollback\fR \fIbeName\fR \fIsnapshot\fR | \fIbeName@snapshot\fR
+\fBbeadm\fR \fBrollback\fR [\fB-v\fR] \fIbeName\fR \fIsnapshot\fR | \fIbeName@snapshot\fR
.ad
.sp .6
.RS 4n
Roll back the boot environment named \fIbeName\fR to existing snapshot
of the boot environment named \fIbeName@snapshot\fR.
+.sp
+.ne 2
+.na
+\fB-v\fR
+.ad
+.sp .6
+.RS 4n
+Verbose mode. Displays verbose error messages from \fBbeadm\fR.
+.RE
.RE
.sp
.ne 2
.na
-\fBbeadm\fR \fBactivate\fR \fIbeName\fR
+\fBbeadm\fR \fBactivate\fR [\fB-v\fR] \fIbeName\fR
.ad
.sp .6
.RS 4n
Makes beName the active BE on next reboot.
+.sp
+.ne 2
+.na
+\fB-v\fR
+.ad
+.sp .6
+.RS 4n
+Verbose mode. Displays verbose error messages from \fBbeadm\fR.
+.RE
.RE
.SH ALTERNATE BE LOCATION