|
|
3df8c3 |
diff -up util-linux-2.23.2/misc-utils/wipefs.8.kzak util-linux-2.23.2/misc-utils/wipefs.8
|
|
|
3df8c3 |
--- util-linux-2.23.2/misc-utils/wipefs.8.kzak 2014-09-24 10:41:31.061930168 +0200
|
|
|
3df8c3 |
+++ util-linux-2.23.2/misc-utils/wipefs.8 2014-09-24 10:46:30.142783728 +0200
|
|
|
3df8c3 |
@@ -37,6 +37,11 @@ table will still be visible by another m
|
|
|
3df8c3 |
When used with option \fB-a\fR, all magic strings that are visible for libblkid are
|
|
|
3df8c3 |
erased.
|
|
|
3df8c3 |
|
|
|
3df8c3 |
+Note that by default
|
|
|
3df8c3 |
+.B wipefs
|
|
|
3df8c3 |
+does not erase nested partition tables on non-whole disk devices. The option
|
|
|
3df8c3 |
+\-\-force is required.
|
|
|
3df8c3 |
+
|
|
|
3df8c3 |
.SH OPTIONS
|
|
|
3df8c3 |
.TP
|
|
|
3df8c3 |
.BR \-a , " \-\-all"
|
|
|
3df8c3 |
diff -up util-linux-2.23.2/misc-utils/wipefs.c.kzak util-linux-2.23.2/misc-utils/wipefs.c
|
|
|
3df8c3 |
--- util-linux-2.23.2/misc-utils/wipefs.c.kzak 2014-09-24 10:41:31.061930168 +0200
|
|
|
3df8c3 |
+++ util-linux-2.23.2/misc-utils/wipefs.c 2014-09-24 10:50:07.728859738 +0200
|
|
|
3df8c3 |
@@ -332,7 +332,7 @@ static void rereadpt(int fd, const char
|
|
|
3df8c3 |
static struct wipe_desc *
|
|
|
3df8c3 |
do_wipe(struct wipe_desc *wp, const char *devname, int noact, int all, int quiet, int force)
|
|
|
3df8c3 |
{
|
|
|
3df8c3 |
- int flags, reread = 0;
|
|
|
3df8c3 |
+ int flags, reread = 0, need_force = 0;
|
|
|
3df8c3 |
blkid_probe pr;
|
|
|
3df8c3 |
struct wipe_desc *w, *wp0;
|
|
|
3df8c3 |
int zap = all ? 1 : wp->zap;
|
|
|
3df8c3 |
@@ -365,6 +365,15 @@ do_wipe(struct wipe_desc *wp, const char
|
|
|
3df8c3 |
if (!wp->on_disk)
|
|
|
3df8c3 |
continue;
|
|
|
3df8c3 |
|
|
|
3df8c3 |
+ if (!force
|
|
|
3df8c3 |
+ && wp->is_parttable
|
|
|
3df8c3 |
+ && !blkid_probe_is_wholedisk(pr)) {
|
|
|
3df8c3 |
+ warnx(_("%s: ignore nested \"%s\" partition "
|
|
|
3df8c3 |
+ "table on non-whole disk device."), devname, wp->type);
|
|
|
3df8c3 |
+ need_force = 1;
|
|
|
3df8c3 |
+ continue;
|
|
|
3df8c3 |
+ }
|
|
|
3df8c3 |
+
|
|
|
3df8c3 |
if (zap) {
|
|
|
3df8c3 |
do_wipe_real(pr, devname, wp, noact, quiet);
|
|
|
3df8c3 |
if (wp->is_parttable)
|
|
|
3df8c3 |
@@ -377,6 +386,9 @@ do_wipe(struct wipe_desc *wp, const char
|
|
|
3df8c3 |
warnx(_("%s: offset 0x%jx not found"), devname, w->offset);
|
|
|
3df8c3 |
}
|
|
|
3df8c3 |
|
|
|
3df8c3 |
+ if (need_force)
|
|
|
3df8c3 |
+ warnx(_("Use the --force option to force erase."));
|
|
|
3df8c3 |
+
|
|
|
3df8c3 |
fsync(blkid_probe_get_fd(pr));
|
|
|
3df8c3 |
|
|
|
3df8c3 |
if (reread)
|