Merge pull request #2392 from jpetso/work/jpetso/fix-2367

[partition] Use the same last sector for root vs. swap partitions
This commit is contained in:
dalto8 2024-11-04 14:30:55 +00:00 committed by GitHub
commit 72e3945d09
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -108,7 +108,7 @@ doAutopartition( PartitionCoreModule* core, Device* dev, Choices::AutoPartitionO
partType = isEfi ? PartitionTable::gpt : PartitionTable::msdos;
}
// last usable sector possibly allowing for secondary GPT using 66 sectors (256 entries)
qint64 lastSectorForRoot = dev->totalLogical() - (partType == PartitionTable::gpt ? 67 : 1);
const qint64 lastUsableSector = dev->totalLogical() - ( partType == PartitionTable::gpt ? 67 : 1 );
// Looking up the defaultFsType (which should name a filesystem type)
// will log an error and set the type to Unknown if there's something wrong.
@ -154,7 +154,7 @@ doAutopartition( PartitionCoreModule* core, Device* dev, Choices::AutoPartitionO
const quint64 sectorSize = quint64( dev->logicalSize() );
if ( mayCreateSwap )
{
quint64 availableSpaceB = quint64( dev->totalLogical() - firstFreeSector ) * sectorSize;
quint64 availableSpaceB = quint64( lastUsableSector - firstFreeSector + 1 ) * sectorSize;
suggestedSwapSizeB = swapSuggestion( availableSpaceB, o.swap );
// Space required by this installation is what the distro claims is needed
// (via global configuration) plus the swap size plus a fudge factor of
@ -165,6 +165,7 @@ doAutopartition( PartitionCoreModule* core, Device* dev, Choices::AutoPartitionO
shouldCreateSwap = availableSpaceB > requiredSpaceB;
}
qint64 lastSectorForRoot = lastUsableSector;
if ( shouldCreateSwap )
{
lastSectorForRoot -= suggestedSwapSizeB / sectorSize + 1;
@ -183,7 +184,7 @@ doAutopartition( PartitionCoreModule* core, Device* dev, Choices::AutoPartitionO
FileSystem::LinuxSwap,
QStringLiteral( "swap" ),
lastSectorForRoot + 1,
dev->totalLogical() - 1,
lastUsableSector,
KPM_PARTITION_FLAG( None ) );
}
else
@ -194,7 +195,7 @@ doAutopartition( PartitionCoreModule* core, Device* dev, Choices::AutoPartitionO
FileSystem::LinuxSwap,
QStringLiteral( "swap" ),
lastSectorForRoot + 1,
dev->totalLogical() - 1,
lastUsableSector,
o.luksFsType,
o.luksPassphrase,
KPM_PARTITION_FLAG( None ) );