From 9d761e8325fbba5cb144984854f2c6e1d44282c7 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Tue, 27 Jul 2021 11:40:32 +0200 Subject: [PATCH] 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 --- libfdisk/src/dos.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/libfdisk/src/dos.c b/libfdisk/src/dos.c index 9cd4ba57c..5d93e09b8 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;