diff --git a/src/modules/partition/PartitionViewStep.cpp b/src/modules/partition/PartitionViewStep.cpp
index 01dd7098b..a012938bf 100644
--- a/src/modules/partition/PartitionViewStep.cpp
+++ b/src/modules/partition/PartitionViewStep.cpp
@@ -527,60 +527,91 @@ PartitionViewStep::onLeave()
Logger::Once o;
const bool okType = esp && PartUtils::isEfiFilesystemSuitableType( esp );
- const bool okSize = esp && PartUtils::isEfiFilesystemSuitableSize( esp );
+ const bool okRecommendedSize = esp && PartUtils::isEfiFilesystemSuitableSize( esp );
+ const bool okMinimumSize = esp && PartUtils::isEfiFilesystemSuitableMinimumSize( esp );
const bool okFlag = esp && PartUtils::isEfiBootable( esp );
- if ( !esp )
- {
- message = tr( "No EFI system partition configured" );
- }
- else if ( !( okType && okSize && okFlag ) )
- {
- message = tr( "EFI system partition configured incorrectly" );
- }
+ const bool espExistsButIsWrong = esp && !( okType && okMinimumSize && okFlag );
+
+ const QString genericWrongnessMessage = tr( "An EFI system partition is necessary to start %1."
+ "
"
+ "To configure an EFI system partition, go back and "
+ "select or create a suitable filesystem." )
+ .arg( branding->shortProductName() );
+ const QString genericRecommendationMessage
+ = tr( "An EFI system partition is necessary to start %1."
+ "
"
+ "The EFI system partition does not meet recommendations. It is "
+ "recommended to go back and "
+ "select or create a suitable filesystem." )
+ .arg( branding->shortProductName() );
+
+ const QString wrongMountPointMessage
+ = tr( "The filesystem must be mounted on %1." ).arg( espMountPoint );
+ const QString wrongTypeMessage = tr( "The filesystem must have type FAT32." );
+ const QString wrongFlagMessage = tr( "The filesystem must have flag %1 set." )
+ .arg( PartitionTable::flagName( PartitionTable::Flag::Boot ) );
+
+ // Three flavors of size-is-wrong
+ using Calamares::Units::operator""_MiB;
+
+ const qint64 atLeastBytes = static_cast< qint64 >( PartUtils::efiFilesystemMinimumSize() );
+ const auto atLeastMiB = Calamares::BytesToMiB( atLeastBytes );
+
+ const QString requireConfiguredSize
+ = tr( "The filesystem must be at least %1 MiB in size." ).arg( atLeastMiB );
+ const QString requiredMinimumSize
+ = tr( "The filesystem must be at least %1 MiB in size." ).arg( Calamares::BytesToMiB( 32_MiB ) );
+ const QString suggestConfiguredSize
+ = tr( "The minimum recommended size for the filesystem is %1 MiB." ).arg( atLeastMiB );
+
+
+ const QString mayFail = tr( "You can continue without setting up an EFI system "
+ "partition but your system may fail to start." );
+ const QString possibleFail = tr( "You can continue with this EFI system "
+ "partition configuration but your system may fail to start." );
+
+ const QString startList = QStringLiteral( "