@@ -2078,10 +2078,6 @@ VOID ScanExtendedPartition (
20782078// Check for Multi-Instance APFS Containers
20792079static
20802080VOID VetMultiInstanceAPFS (VOID ) {
2081- // DA-TAG: Disable as redundant since we now have APFS Volume Group GUID
2082- // Keep function as potentially useful for future other APFS items
2083- return ;
2084- #if 0
20852081 EFI_STATUS Status ;
20862082 UINTN i , j ;
20872083 BOOLEAN ActiveContainer ;
@@ -2142,7 +2138,7 @@ return;
21422138 Status = RP_GetApfsVolumeInfo (
21432139 Volumes [i ]-> DeviceHandle ,
21442140 NULL , NULL ,
2145- & VolumeRole , NULL
2141+ & VolumeRole
21462142 );
21472143
21482144 if (!EFI_ERROR (Status )) {
@@ -2178,9 +2174,6 @@ return;
21782174 break ;
21792175 }
21802176 } // for j = 0
2181-
2182- // DA-TAG: Disable - END
2183- #endif
21842177} // VOID VetMultiInstanceAPFS()
21852178
21862179// Ensure SyncAPFS can be used.
@@ -2207,7 +2200,9 @@ VOID VetSyncAPFS (VOID) {
22072200 #endif
22082201 }
22092202 else {
2210- UINTN i , j ;
2203+ UINTN i , j ;
2204+ CHAR16 * CheckName = NULL ;
2205+ CHAR16 * TweakName = NULL ;
22112206
22122207 #if REFIT_DEBUG > 0
22132208 MsgStr = StrDuplicate (L"ReMap APFS Volumes" );
@@ -2226,17 +2221,43 @@ VOID VetSyncAPFS (VOID) {
22262221
22272222 // Filter '- Data' string tag out of Volume Group name if present
22282223 for (i = 0 ; i < DataVolumesCount ; i ++ ) {
2229- for (j = 0 ; j < SystemVolumesCount ; j ++ ) {
2230- if (GuidsAreEqual (& DataVolumes [i ]-> VolGroup , & SystemVolumes [j ]-> VolGroup )) {
2231- DataVolumes [i ]-> VolName = StrDuplicate (SystemVolumes [j ]-> VolName );
2232- break ;
2233- }
2234- } // for j = 0
2224+ if (MyStrStr (DataVolumes [i ]-> VolName , L"- Data" )) {
2225+ for (j = 0 ; j < SystemVolumesCount ; j ++ ) {
2226+ MY_FREE_POOL (TweakName );
2227+ TweakName = SanitiseString (SystemVolumes [j ]-> VolName );
2228+
2229+ MY_FREE_POOL (CheckName );
2230+ CheckName = PoolPrint (L"%s - Data" , TweakName );
2231+
2232+ if (MyStriCmp (DataVolumes [i ]-> VolName , CheckName )) {
2233+ MY_FREE_POOL (DataVolumes [i ]-> VolName );
2234+ DataVolumes [i ]-> VolName = StrDuplicate (SystemVolumes [j ]-> VolName );
2235+
2236+ break ;
2237+ }
2238+
2239+ // Check against raw name string if apporpriate
2240+ if (!MyStriCmp (SystemVolumes [j ]-> VolName , TweakName )) {
2241+ MY_FREE_POOL (CheckName );
2242+ CheckName = PoolPrint (L"%s - Data" , SystemVolumes [j ]-> VolName );
2243+
2244+ if (MyStriCmp (DataVolumes [i ]-> VolName , CheckName )) {
2245+ MY_FREE_POOL (DataVolumes [i ]-> VolName );
2246+ DataVolumes [i ]-> VolName = StrDuplicate (SystemVolumes [j ]-> VolName );
2247+
2248+ break ;
2249+ }
2250+ }
2251+ } // for j = 0
2252+
2253+ MY_FREE_POOL (TweakName );
2254+ MY_FREE_POOL (CheckName );
2255+ }
22352256 } // for i = 0
22362257
22372258 #if REFIT_DEBUG > 0
22382259 MsgStr = PoolPrint (
2239- L"ReMapped %d APFS Volume Group %s" ,
2260+ L"ReMapped %d APFS Volume%s" ,
22402261 SystemVolumesCount , (SystemVolumesCount == 1 ) ? L"" : L"s"
22412262 );
22422263 LOG (1 , LOG_LINE_NORMAL , L"%s" , MsgStr );
@@ -2297,7 +2318,6 @@ VOID ScanVolumes (VOID) {
22972318 BOOLEAN DupFlag ;
22982319 EFI_GUID * UuidList ;
22992320 EFI_GUID VolumeGuid ;
2300- EFI_GUID ApfsVolGrpGuid ;
23012321 APPLE_APFS_VOLUME_ROLE VolumeRole = 0 ;
23022322
23032323 #if REFIT_DEBUG > 0
@@ -2306,15 +2326,13 @@ VOID ScanVolumes (VOID) {
23062326 CHAR16 * PartGUID = NULL ;
23072327 CHAR16 * PartTypeGUID = NULL ;
23082328 CHAR16 * VolumeUUID = NULL ;
2309- CHAR16 * GruopGUID = NULL ;
23102329
23112330 const CHAR16 * ITEMVOLA = L"PARTITION TYPE GUID" ;
23122331 const CHAR16 * ITEMVOLB = L"PARTITION GUID" ;
23132332 const CHAR16 * ITEMVOLC = L"PARTITION TYPE" ;
2314- const CHAR16 * ITEMVOLD = L"APFS GROUP GUID" ;
2315- const CHAR16 * ITEMVOLE = L"VOLUME UUID" ;
2316- const CHAR16 * ITEMVOLF = L"VOLUME ROLE" ;
2317- const CHAR16 * ITEMVOLG = L"VOLUME NAME" ;
2333+ const CHAR16 * ITEMVOLD = L"VOLUME UUID" ;
2334+ const CHAR16 * ITEMVOLE = L"VOLUME ROLE" ;
2335+ const CHAR16 * ITEMVOLF = L"VOLUME NAME" ;
23182336
23192337 LOG (1 , LOG_LINE_SEPARATOR , L"Scan Readable Volumes" );
23202338 #endif
@@ -2505,8 +2523,8 @@ VOID ScanVolumes (VOID) {
25052523
25062524 if (!DoneHeadings ) {
25072525 MsgLog (
2508- "%-41s%-41s%-20s%-41s%-41s%- 22s%s\n" ,
2509- ITEMVOLA , ITEMVOLB , ITEMVOLC , ITEMVOLD , ITEMVOLE , ITEMVOLF , ITEMVOLG
2526+ "%-41s%-41s%-20s%-41s%-22s%s\n" ,
2527+ ITEMVOLA , ITEMVOLB , ITEMVOLC , ITEMVOLD , ITEMVOLE , ITEMVOLF
25102528 );
25112529 DoneHeadings = TRUE;
25122530
@@ -2544,18 +2562,15 @@ VOID ScanVolumes (VOID) {
25442562 Volume -> DeviceHandle ,
25452563 NULL ,
25462564 & VolumeGuid ,
2547- & VolumeRole ,
2548- & ApfsVolGrpGuid
2565+ & VolumeRole
25492566 );
25502567 #endif
25512568
25522569 if (!EFI_ERROR (Status )) {
2553- PartType = L"APFS" ;
2554- Volume -> FSType = FS_TYPE_APFS ;
2555- Volume -> VolUuid = VolumeGuid ;
2556- Volume -> VolGroup = ApfsVolGrpGuid ;
2557- Volume -> Role = VolumeRole ;
2558- RoleStr = GetApfsRoleString (VolumeRole );
2570+ PartType = L"APFS" ;
2571+ Volume -> FSType = FS_TYPE_APFS ;
2572+ Volume -> VolUuid = VolumeGuid ;
2573+ RoleStr = GetApfsRoleString (VolumeRole );
25592574
25602575 if (VolumeRole == APPLE_APFS_VOLUME_ROLE_RECOVERY ) {
25612576 // Create or add to a list of APFS Recovery Volumes
@@ -2596,26 +2611,17 @@ VOID ScanVolumes (VOID) {
25962611
25972612 #if REFIT_DEBUG > 0
25982613 // Allocate Pools for Log Details
2599- PartName = StrDuplicate (PartType );
2600-
2601- PartGUID = GuidsAreEqual (& (Volume -> PartGuid ), & GuidNull )
2602- ? StrDuplicate (L"" ) : GuidAsString (& (Volume -> PartGuid ));
2603-
2604- PartTypeGUID = GuidsAreEqual (& (Volume -> PartTypeGuid ), & GuidNull )
2605- ? StrDuplicate (L"" ) : GuidAsString (& (Volume -> PartTypeGuid ));
2606-
2607- VolumeUUID = GuidsAreEqual (& (Volume -> VolUuid ), & GuidNull )
2608- ? StrDuplicate (L"" ) : GuidAsString (& (Volume -> VolUuid ));
2609-
2610- GruopGUID = GuidsAreEqual (& (Volume -> VolGroup ), & GuidNull )
2611- ? StrDuplicate (L"" ) : GuidAsString (& (Volume -> VolGroup ));
2614+ PartName = StrDuplicate (PartType );
2615+ PartGUID = GuidAsString (& (Volume -> PartGuid ));
2616+ PartTypeGUID = GuidAsString (& (Volume -> PartTypeGuid ));
2617+ VolumeUUID = GuidAsString (& (Volume -> VolUuid ));
26122618
26132619 // Control PartName Length
26142620 LimitStringLength (PartName , 15 );
26152621
26162622 MsgStr = PoolPrint (
2617- L"%-36s : %-36s : %-15s : %-36s : %-36s : %- 17s : %s" ,
2618- PartTypeGUID , PartGUID , PartType , GruopGUID ,
2623+ L"%-36s : %-36s : %-15s : %-36s : %-17s : %s" ,
2624+ PartTypeGUID , PartGUID , PartType ,
26192625 VolumeUUID , RoleStr , Volume -> VolName
26202626 );
26212627
@@ -2628,7 +2634,6 @@ VOID ScanVolumes (VOID) {
26282634 MY_FREE_POOL (PartGUID );
26292635 MY_FREE_POOL (PartTypeGUID );
26302636 MY_FREE_POOL (VolumeUUID );
2631- MY_FREE_POOL (GruopGUID );
26322637 #endif
26332638 }
26342639
@@ -2669,8 +2674,8 @@ VOID ScanVolumes (VOID) {
26692674 else {
26702675 #if REFIT_DEBUG > 0
26712676 MsgStr = PoolPrint (
2672- L"%-41s%-41s%-20s%-41s%-41s%- 22s%s" ,
2673- ITEMVOLA , ITEMVOLB , ITEMVOLC , ITEMVOLD , ITEMVOLE , ITEMVOLF , ITEMVOLG
2677+ L"%-41s%-41s%-20s%-41s%-22s%s" ,
2678+ ITEMVOLA , ITEMVOLB , ITEMVOLC , ITEMVOLD , ITEMVOLE , ITEMVOLF
26742679 );
26752680 LOG (1 , LOG_LINE_NORMAL , L"%s" , MsgStr );
26762681 MsgLog ("%s" , OffsetNext );
0 commit comments