- pMainGptInfo->PartTbl[1].Attr = VENTOY_EFI_PART_ATTR;
- pMainGptInfo->Head.PartTblCrc = VtoyCrc32(pMainGptInfo->PartTbl, sizeof(pMainGptInfo->PartTbl));
- pMainGptInfo->Head.Crc = 0;
- pMainGptInfo->Head.Crc = VtoyCrc32(&pMainGptInfo->Head, pMainGptInfo->Head.Length);
-
- pBackGptInfo->PartTbl[1].Attr = VENTOY_EFI_PART_ATTR;
- pBackGptInfo->Head.PartTblCrc = VtoyCrc32(pBackGptInfo->PartTbl, sizeof(pBackGptInfo->PartTbl));
- pBackGptInfo->Head.Crc = 0;
- pBackGptInfo->Head.Crc = VtoyCrc32(&pBackGptInfo->Head, pBackGptInfo->Head.Length);
-
- lseek(fd, 512, SEEK_SET);
- write(fd, (UINT8 *)pMainGptInfo + 512, sizeof(VTOY_GPT_INFO) - 512);
-
- lseek(fd, DiskSize - 33 * 512, SEEK_SET);
- write(fd, pBackGptInfo, sizeof(VTOY_BK_GPT_INFO));
-
- fsync(fd);
+ if (pMainGptInfo->PartTbl[1].Attr != VENTOY_EFI_PART_ATTR)
+ {
+ pMainGptInfo->PartTbl[1].Attr = VENTOY_EFI_PART_ATTR;
+ pMainGptInfo->Head.PartTblCrc = VtoyCrc32(pMainGptInfo->PartTbl, sizeof(pMainGptInfo->PartTbl));
+ pMainGptInfo->Head.Crc = 0;
+ pMainGptInfo->Head.Crc = VtoyCrc32(&pMainGptInfo->Head, pMainGptInfo->Head.Length);
+
+ pBackGptInfo->PartTbl[1].Attr = VENTOY_EFI_PART_ATTR;
+ pBackGptInfo->Head.PartTblCrc = VtoyCrc32(pBackGptInfo->PartTbl, sizeof(pBackGptInfo->PartTbl));
+ pBackGptInfo->Head.Crc = 0;
+ pBackGptInfo->Head.Crc = VtoyCrc32(&pBackGptInfo->Head, pBackGptInfo->Head.Length);
+
+ lseek(fd, 512, SEEK_SET);
+ write(fd, (UINT8 *)pMainGptInfo + 512, sizeof(VTOY_GPT_INFO) - 512);
+
+ lseek(fd, DiskSize - 33 * 512, SEEK_SET);
+ write(fd, pBackGptInfo, sizeof(VTOY_BK_GPT_INFO));
+
+ fsync(fd);
+ }