[SETUP] Align partition start at 2048 minimum

This will allow compatibility with modern OSes and
modern disk management utilities.
It will also improve performances by properly aligning
partition start.
And it will let enough room at the begin of the disk
for 3rd party bootloaders.

WARNING: this is not compatible with previous partition
model, and old one will likely not be compatible. You'll
have to erase your whole partition table and start from
scratch.
This commit is contained in:
Pierre Schweitzer 2018-11-11 17:34:35 +01:00
parent 86ced3f237
commit 26408b02f1
No known key found for this signature in database
GPG key ID: 7545556C3D585B0B

View file

@ -819,7 +819,10 @@ ScanForUnpartitionedDiskSpace(
NewPartEntry->DiskEntry = DiskEntry;
NewPartEntry->IsPartitioned = FALSE;
NewPartEntry->StartSector.QuadPart = (ULONGLONG)DiskEntry->SectorAlignment;
if (DiskEntry->SectorAlignment < 2048)
NewPartEntry->StartSector.QuadPart = 2048ULL;
else
NewPartEntry->StartSector.QuadPart = (ULONGLONG)DiskEntry->SectorAlignment;
NewPartEntry->SectorCount.QuadPart = AlignDown(DiskEntry->SectorCount.QuadPart, DiskEntry->SectorAlignment) -
NewPartEntry->StartSector.QuadPart;
@ -837,7 +840,10 @@ ScanForUnpartitionedDiskSpace(
}
/* Start partition at head 1, cylinder 0 */
LastStartSector = DiskEntry->SectorAlignment;
if (DiskEntry->SectorAlignment < 2048)
LastStartSector = 2048ULL;
else
LastStartSector = DiskEntry->SectorAlignment;
LastSectorCount = 0ULL;
LastUnusedSectorCount = 0ULL;