From: Karel Zak Date: Tue, 27 Jul 2021 09:40:32 +0000 (+0200) Subject: libfdisk: (dos) support partition and MBR overlap X-Git-Tag: v2.37.2~23 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=9d761e8325fbba5cb144984854f2c6e1d44282c7;p=thirdparty%2Futil-linux.git libfdisk: (dos) support partition and MBR overlap Let's support this crazy use-case in expert menu, because it's normal for removable FAT disks, etc. Signed-off-by: Karel Zak --- diff --git a/libfdisk/src/dos.c b/libfdisk/src/dos.c index 9cd4ba57cc..5d93e09b80 100644 --- a/libfdisk/src/dos.c +++ b/libfdisk/src/dos.c @@ -2494,10 +2494,11 @@ int fdisk_dos_move_begin(struct fdisk_context *cxt, size_t i) return 0; } - /* the default start is at the second sector of the disk or at the - * second sector of the extended partition + /* The safe start is at the second sector, but some use-cases require + * to have MBR within the first partition , so default to the first + * sector of the disk or at the second sector of the extended partition */ - free_start = pe->offset ? pe->offset + 1 : 1; + free_start = pe->offset ? pe->offset + 1 : 0; curr_start = get_abs_partition_start(pe); @@ -2537,6 +2538,11 @@ int fdisk_dos_move_begin(struct fdisk_context *cxt, size_t i) dos_partition_set_start(p, new); partition_set_changed(cxt, i, 1); + + if (new == 0) + fdisk_info(cxt, _("The new beginning of the partition overlaps the disk " + "label area. Be very careful when using the partition. " + "You can lose all your partitions on the disk.")); } return rc;