mirror of
https://github.com/parchlinux/calamares.git
synced 2025-06-27 01:15:38 -04:00
Try to load filesystem UUIDs into the OsproberEntryList structure.
This commit is contained in:
parent
f13f6a1faf
commit
811261258b
2 changed files with 30 additions and 0 deletions
|
@ -145,6 +145,35 @@ PartitionCoreModule::doInit()
|
|||
// which relies on a working DeviceModel.
|
||||
m_osproberLines = PartUtils::runOsprober( this );
|
||||
|
||||
// We perform a best effort of filling out filesystem UUIDs in m_osproberLines
|
||||
// because we will need them later on in PartitionModel if partition paths
|
||||
// change.
|
||||
// It is a known fact that /dev/sda1-style device paths aren't persistent
|
||||
// across reboots (and this doesn't affect us), but partition numbers can also
|
||||
// change at runtime against our will just for shits and giggles.
|
||||
// But why would that ever happen? What system could possibly be so poorly
|
||||
// designed that it requires a partition path rearrangement at runtime?
|
||||
// Logical partitions on an MSDOS disklabel of course.
|
||||
// See DeletePartitionJob::updatePreview.
|
||||
for ( auto deviceInfo : m_deviceInfos )
|
||||
{
|
||||
for ( auto it = PartitionIterator::begin( deviceInfo->device.data() );
|
||||
it != PartitionIterator::end( deviceInfo->device.data() ); ++it )
|
||||
{
|
||||
Partition* partition = *it;
|
||||
for ( auto jt = m_osproberLines.begin();
|
||||
jt != m_osproberLines.end(); ++jt )
|
||||
{
|
||||
if ( jt->path == partition->partitionPath() &&
|
||||
partition->fileSystem().supportGetUUID() != FileSystem::cmdSupportNone &&
|
||||
!partition->fileSystem().uuid().isEmpty() )
|
||||
{
|
||||
jt->uuid = partition->fileSystem().uuid();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for ( auto deviceInfo : m_deviceInfos )
|
||||
{
|
||||
deviceInfo->partitionModel->init( deviceInfo->device.data(), m_osproberLines );
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue