summaryrefslogtreecommitdiffstats
path: root/disk-utils
diff options
context:
space:
mode:
authorKarel Zak2017-11-02 13:50:30 +0100
committerKarel Zak2017-11-02 13:50:30 +0100
commit8175ed3d74adacc895657ded7546cb3c5deeabad (patch)
tree140fec59226f5e8eaa6d94c2103cf3a26a5fecce /disk-utils
parentsfdisk: allow to use --activate for PMBR (diff)
downloadkernel-qcow2-util-linux-8175ed3d74adacc895657ded7546cb3c5deeabad.tar.gz
kernel-qcow2-util-linux-8175ed3d74adacc895657ded7546cb3c5deeabad.tar.xz
kernel-qcow2-util-linux-8175ed3d74adacc895657ded7546cb3c5deeabad.zip
sfdisk: allow to disable bootable flag on all partitions
Let use '-' rather than a partition number to disable the bootable flag on all partitions: sfdisk --activate /dev/sdc - Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'disk-utils')
-rw-r--r--disk-utils/sfdisk.812
-rw-r--r--disk-utils/sfdisk.c6
2 files changed, 13 insertions, 5 deletions
diff --git a/disk-utils/sfdisk.8 b/disk-utils/sfdisk.8
index 5266ca744..31f64fd79 100644
--- a/disk-utils/sfdisk.8
+++ b/disk-utils/sfdisk.8
@@ -78,10 +78,14 @@ partitions may be smaller. In this case \fBsfdisk\fR follows the default
values from the partition table and does not use built-in defaults for the
unused partition given with \fB\-N\fR. See also \fB\-\-append\fR.
.TP
-.BR \-A , " \-\-activate \fIdevice " [ \fIpartition-number ...]
-Switch on the bootable flag for the specified partitions.
-If no \fIpartition-number\fR is specified,
-then list the partitions with an enabled flag.
+.BR \-A , " \-\-activate \fIdevice " [ \fIpartition-number...]
+Switch on the bootable flag for the specified partitions and switch off the
+bootable flag on all unspecified partitions. The special placeholder '-'
+may be used instead of the partition numbers to switch off the bootable flag
+on all partitions.
+
+If no \fIpartition-number\fR is specified, then list the partitions with an
+enabled flag.
.TP
.BR "\-\-delete \fIdevice " [ \fIpartition-number ...]
Delete all or the specified partitions.
diff --git a/disk-utils/sfdisk.c b/disk-utils/sfdisk.c
index 46b7e54db..ac4f71106 100644
--- a/disk-utils/sfdisk.c
+++ b/disk-utils/sfdisk.c
@@ -853,7 +853,11 @@ static int command_activate(struct sfdisk *sf, int argc, char **argv)
/* sfdisk --activate <partno> [..] */
for (i = 1; i < argc; i++) {
- int n = strtou32_or_err(argv[i], _("failed to parse partition number"));
+ int n;
+
+ if (i == 1 && strcmp(argv[1], "-") == 0)
+ break;
+ n = strtou32_or_err(argv[i], _("failed to parse partition number"));
rc = fdisk_toggle_partition_flag(sf->cxt, n - 1, DOS_FLAG_ACTIVE);
if (rc)