| 
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -434,50 +434,66 @@ PartitionViewStep::onLeave()
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            const QString espMountPoint
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                = Calamares::JobQueue::instance()->globalStorage()->value( "efiSystemPartition" ).toString();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            const QString espFlagName = PartitionTable::flagName(
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#ifdef WITH_KPMCORE4API
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                PartitionTable::Flag::Boot
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            const auto espFlag = PartitionTable::Flag::Boot;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#else
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                PartitionTable::FlagEsp
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            const auto espFlag = PartitionTable::FlagEsp;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				#endif
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                                        );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            Partition* esp = m_core->findPartitionByMountPoint( espMountPoint );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            QString message;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            QString description;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if ( !esp || ( esp && !PartUtils::isEfiFilesystemSuitable( esp ) ) )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            Logger::Once o;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            const bool okType = esp && PartUtils::isEfiFilesystemSuitableType( esp );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            const bool okSize = esp && PartUtils::isEfiFilesystemSuitableSize( esp );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            const bool okFlag = esp && PartUtils::isEfiBootable( esp );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if ( !esp )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                message = tr( "No EFI system partition configured" );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                description = tr( "An EFI system partition is necessary to start %1."
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "<br/><br/>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "To configure an EFI system partition, go back and "
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "select or create a FAT32 filesystem with the "
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "<strong>%3</strong> flag enabled and mount point "
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "<strong>%2</strong>.<br/><br/>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "You can continue without setting up an EFI system "
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "partition but your system may fail to start." )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  .arg( branding->shortProductName() )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  .arg( espMountPoint, espFlagName );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else if ( esp && !PartUtils::isEfiBootable( esp ) )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else if ( !(okType && okSize && okFlag ) )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                message = tr( "EFI system partition flag not set" );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                description = tr( "An EFI system partition is necessary to start %1."
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "<br/><br/>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "A partition was configured with mount point "
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "<strong>%2</strong> but its <strong>%3</strong> "
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "flag is not set.<br/>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "To set the flag, go back and edit the partition."
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "<br/><br/>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "You can continue without setting the flag but your "
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "system may fail to start." )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  .arg( branding->shortProductName() )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  .arg( espMountPoint, espFlagName );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                message = tr( "EFI system partition configured incorrectly" );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if ( !esp || !(okType&&okSize &&okFlag)) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            description = tr( "An EFI system partition is necessary to start %1."
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                "<br/><br/>"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                "To configure an EFI system partition, go back and "
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                "select or create a suitable filesystem.").arg( branding->shortProductName() );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (!esp) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                cDebug() << o << "No ESP mounted";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                description.append(' ');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                description.append(tr("The filesystem must be mounted on <strong>%1</strong>.").arg(espMountPoint));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (!okType) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                cDebug() << o << "ESP wrong type";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                description.append(' ');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                description.append(tr("The filesystem must have type FAT32."));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (!okSize) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                cDebug() << o << "ESP too small";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                description.append(' ');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                description.append(tr("The filesystem must be at least %1 MiB in size.").arg( PartUtils::efiFilesystemMinimumSize() ));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (!okFlag)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                cDebug() << o << "ESP missing flag";
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                description.append(' ');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                description.append(tr("The filesystem must have flag <strong>%1</strong> set.").arg(PartitionTable::flagName( espFlag )));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (!description.isEmpty()) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                description.append( "<br/><br/>" );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                description.append( tr(
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "You can continue without setting up an EFI system "
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                                  "partition but your system may fail to start." ));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if ( !message.isEmpty() )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                cWarning() << message;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                QMessageBox::warning( m_manualPartitionPage, message, description );
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        }
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
			
			 | 
			 | 
			
				
 
 |