[Bug 197989] gpart(8) can't define start for new partition

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Wed Feb 25 23:31:23 UTC 2015


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=197989

--- Comment #4 from Andrey V. Elsukov <ae at FreeBSD.org> ---
(In reply to timp87 from comment #3)
> The first partition has been added from 792 and it is a bit strange. Why not
> earlier? from 40 for example.

This is because your disk has logical block size equal to 1Mbyte and its first
sector placed with 643072 bytes offset from the beginning of the hardware disk.

So, gpart(8) decided to properly align your first partition to start from the
start of logical block.

[          PHYSICAL DISK           ]
---->[       da0                   ]
     ^ = 643072 bytes
[=======][=======][=======][=======] <- logical blocks
---------^ = 1048576 bytes

Now, when you created da0p1 partitions, it starts from the 792 sector:
643072 + 792*512 = 1048576 bytes.

Can you try this patch?

Index: sbin/geom/class/part/geom_part.c
===================================================================
--- sbin/geom/class/part/geom_part.c    (revision 279233)
+++ sbin/geom/class/part/geom_part.c    (working copy)
@@ -561,7 +561,7 @@ gpart_autofill(struct gctl_req *req)

         s = find_provcfg(pp, "end");
         first = (off_t)strtoimax(s, NULL, 0) + 1;
-        if (first > a_first)
+        if (first + offset > a_first)
             a_first = ALIGNUP(first + offset, alignment);
     }
     if (a_first <= last) {

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list