]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
sfdisk: improve -N warnings
authorKarel Zak <kzak@redhat.com>
Mon, 13 Apr 2015 10:08:50 +0000 (12:08 +0200)
committerKarel Zak <kzak@redhat.com>
Mon, 13 Apr 2015 10:08:50 +0000 (12:08 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
disk-utils/sfdisk.8
disk-utils/sfdisk.c

index 18227591dad0db219f2d3e83f281bb9c5e51a625..a7b84cab171fc0d79cf34dfc5ade1a824da93a16 100644 (file)
@@ -57,7 +57,14 @@ input format.  If standard input is a terminal, then \fBsfdisk\fR starts an
 interactive session.
 .sp
 If the option \fB\-N\fR is specified, then the changes are applied to
-the partition addressed by \fIpartition-number\fR.
+the partition addressed by \fIpartition-number\fR. The unspecified fields
+of the partition are not modified.
+.sp
+Note that it's possible to address unused partition by \fB\-N\fR. For example
+MBR always contains 4 partitions, but the number of the used partitions may be
+smaller.  In this case sfdisk follows the default values from the partition
+table and it does not use built-in defaults for the unused partition specified
+by \fB\-N\fR. See also \fB\---append\fR.
 .TP
 .BR \-A , " \-\-activate \fIdevice\fR [" \fIpartition-number\fR...]
 Switch on the bootable flag.  If no \fIpartition-number\fR is specified,
index 6b60d040e115bc167582e72aa5a89804aee17bca..ee55feae4e549c94e026545e41b4068e4968f350 100644 (file)
@@ -1161,16 +1161,21 @@ static int command_fdisk(struct sfdisk *sf, int argc, char **argv)
         */
        if (partno >= 0) {
                size_t n;
+
                if (!fdisk_has_label(sf->cxt))
                        errx(EXIT_FAILURE, _("%s: cannot modify partition %d: "
                                             "no partition table was found"),
-                                       devname, partno);
+                                       devname, partno + 1);
                n = fdisk_get_npartitions(sf->cxt);
                if ((size_t) partno > n)
                        errx(EXIT_FAILURE, _("%s: cannot modify partition %d: "
                                             "partition table contains only %zu "
                                             "partitions"),
-                                       devname, partno, n);
+                                       devname, partno + 1, n);
+
+               if (!fdisk_is_partition_used(sf->cxt, partno))
+                       fdisk_warnx(sf->cxt, _("warning: %s: partition %d is not defined yet"),
+                                       devname, partno + 1);
                created = 1;
                next_partno = partno;
        }