Many people report a problem with the message if (cylinders <= 1024 &&
start != total) fprintf(stderr, _("Partition %d: previous sectors %d
disagrees with " "total %d\n"), n, start, total);
This message comes from the fact that the previous code caluclates the
total number of sectors in the wrong way.
The formula should be total = (real_c * heads + h) * sectors + real_s;
As a Cylinder consists of some heads * sectors A Head consists of some
sectors and finally sectors are the smallest unit
Signed-off-by: Karel Zak <kzak@redhat.com>
real_s = sector(s) - 1;
real_c = cylinder(s, c);
- total = (real_c * cxt->geom.sectors + real_s) * cxt->geom.heads + h;
+ total = (real_c * cxt->geom.heads + h) * cxt->geom.sectors + real_s;
if (!total)
fdisk_warnx(cxt, _("Partition %zu: contains sector 0"), n);