]> glassweightruler.freedombox.rocks Git - Ventoy.git/commitdiff
Change the MBR partition type to 0x0C when select FAT32 for installation.
authorlongpanda <admin@ventoy.net>
Mon, 19 Dec 2022 16:16:01 +0000 (00:16 +0800)
committerlongpanda <admin@ventoy.net>
Mon, 19 Dec 2022 16:16:01 +0000 (00:16 +0800)
INSTALL/Ventoy2Disk.exe
INSTALL/Ventoy2Disk_ARM.exe
INSTALL/Ventoy2Disk_ARM64.exe
INSTALL/Ventoy2Disk_X64.exe
Ventoy2Disk/Ventoy2Disk/PhyDrive.c
Ventoy2Disk/Ventoy2Disk/Utility.c
Ventoy2Disk/Ventoy2Disk/Ventoy2Disk.h

index bce9fe7f18b6c07084d1b8af02ba487cf522d1df..107df62de485c48d6958267404e66ebe878d670f 100644 (file)
Binary files a/INSTALL/Ventoy2Disk.exe and b/INSTALL/Ventoy2Disk.exe differ
index b8930d77e10e8515928d9411e9286fb134cf7c67..b8ba5335883dd3c0091354376a462820812e9c1f 100644 (file)
Binary files a/INSTALL/Ventoy2Disk_ARM.exe and b/INSTALL/Ventoy2Disk_ARM.exe differ
index 96a5790b80bd701dc3ade7db880bd26d20cfd477..11236e347e26050936523963aaca3c2360906d13 100644 (file)
Binary files a/INSTALL/Ventoy2Disk_ARM64.exe and b/INSTALL/Ventoy2Disk_ARM64.exe differ
index 04610f011ac45e251e81ea86b20c399821101004..f41db223dadf87de105a044bbe979df5f3f7300a 100644 (file)
Binary files a/INSTALL/Ventoy2Disk_X64.exe and b/INSTALL/Ventoy2Disk_X64.exe differ
index af68bec35a43c1174401d6a92c772659722b4b1f..ff69536fd2fb74ff5e48b90ec4d87e5b50765740 100644 (file)
@@ -1587,7 +1587,7 @@ int InstallVentoy2FileImage(PHY_DRIVE_INFO *pPhyDrive, int PartStyle)
         memset(pData, 0, 512);\r
 \r
         pMBR = (MBR_HEAD *)pData;\r
-        VentoyFillMBR(pPhyDrive->SizeInBytes, pMBR, PartStyle);\r
+        VentoyFillMBR(pPhyDrive->SizeInBytes, pMBR, PartStyle, 0x07);\r
         Part1StartSector = pMBR->PartTbl[0].StartSectorId;\r
         Part1SectorCount = pMBR->PartTbl[0].SectorCount;\r
         Part2StartSector = pMBR->PartTbl[1].StartSectorId;\r
@@ -1751,6 +1751,7 @@ int InstallVentoy2PhyDrive(PHY_DRIVE_INFO *pPhyDrive, int PartStyle, int TryId)
     UINT64 Part2StartSector = 0;\r
     BOOL LargeFAT32 = FALSE;\r
     BOOL DefaultExFAT = FALSE;\r
+    UINT8 FsFlag = 0x07;\r
 \r
        Log("#####################################################");\r
     Log("InstallVentoy2PhyDrive try%d %s PhyDrive%d <<%s %s %dGB>>", TryId,\r
@@ -1775,7 +1776,12 @@ int InstallVentoy2PhyDrive(PHY_DRIVE_INFO *pPhyDrive, int PartStyle, int TryId)
     }\r
     else\r
     {\r
-        VentoyFillMBR(pPhyDrive->SizeInBytes, &MBR, PartStyle);\r
+        if (GetVentoyFsType() == VTOY_FS_FAT32)\r
+        {\r
+            FsFlag = 0x0C;\r
+        }\r
+\r
+        VentoyFillMBR(pPhyDrive->SizeInBytes, &MBR, PartStyle, FsFlag);\r
         Part1StartSector = MBR.PartTbl[0].StartSectorId;\r
         Part1SectorCount = MBR.PartTbl[0].SectorCount;\r
         Part2StartSector = MBR.PartTbl[1].StartSectorId;\r
index 32939bef7ae5aa13e8d3f045f3a561f7e11cf4a9..80cd6baae2f0cc7c9ba7a6e99f9cf8b4183b7a53 100644 (file)
@@ -669,7 +669,7 @@ int VentoyFillMBRLocation(UINT64 DiskSizeInBytes, UINT32 StartSectorId, UINT32 S
     return 0;\r
 }\r
 \r
-int VentoyFillMBR(UINT64 DiskSizeBytes, MBR_HEAD *pMBR, int PartStyle)\r
+int VentoyFillMBR(UINT64 DiskSizeBytes, MBR_HEAD *pMBR, int PartStyle, UINT8 FsFlag)\r
 {\r
     GUID Guid;\r
        int ReservedValue;\r
@@ -733,7 +733,7 @@ int VentoyFillMBR(UINT64 DiskSizeBytes, MBR_HEAD *pMBR, int PartStyle)
     VentoyFillMBRLocation(DiskSizeBytes, PartStartSector, PartSectorCount, pMBR->PartTbl);\r
 \r
     pMBR->PartTbl[0].Active = 0x80; // bootable\r
-    pMBR->PartTbl[0].FsFlag = 0x07; // exFAT/NTFS/HPFS\r
+    pMBR->PartTbl[0].FsFlag = FsFlag; // File system flag  07:exFAT/NTFS/HPFS  0C:FAT32\r
 \r
     //Part2\r
     PartStartSector += PartSectorCount;\r
index 21287279c2ea5796301226a2a913cc097d5015f9..84d98b591c6601f8098add37dac152bfa7024e2b 100644 (file)
@@ -238,7 +238,7 @@ const CHAR * GetBusTypeString(STORAGE_BUS_TYPE Type);
 int VentoyGetLocalBootImg(MBR_HEAD *pMBR);\r
 int GetHumanReadableGBSize(UINT64 SizeBytes);\r
 void TrimString(CHAR *String);\r
-int VentoyFillMBR(UINT64 DiskSizeBytes, MBR_HEAD *pMBR, int PartStyle);\r
+int VentoyFillMBR(UINT64 DiskSizeBytes, MBR_HEAD *pMBR, int PartStyle, UINT8 FsFlag);\r
 int VentoyFillGpt(UINT64 DiskSizeBytes, VTOY_GPT_INFO *pInfo);\r
 BOOL IsVentoyLogicalDrive(CHAR DriveLetter);\r
 int GetRegDwordValue(HKEY Key, LPCSTR SubKey, LPCSTR ValueName, DWORD *pValue);\r