mirror of
https://github.com/ventoy/Ventoy.git
synced 2025-08-27 16:01:14 +00:00
@@ -442,7 +442,7 @@ int ventoy_fill_gpt(uint64_t size, uint64_t reserve, int align4k, VTOY_GPT_INFO
|
||||
ventoy_gen_preudo_uuid(&(Table[1].PartGuid));
|
||||
Table[1].StartLBA = Table[0].LastLBA + 1;
|
||||
Table[1].LastLBA = Table[1].StartLBA + VTOYEFI_PART_BYTES / 512 - 1;
|
||||
Table[1].Attr = 0xC000000000000001ULL;
|
||||
Table[1].Attr = 0x8000000000000000ULL;
|
||||
ventoy_fill_gpt_partname(Table[1].Name, "VTOYEFI");
|
||||
|
||||
#if 0
|
||||
|
@@ -727,6 +727,7 @@ static void * ventoy_update_thread(void *data)
|
||||
MBR_HEAD MBR;
|
||||
ventoy_disk *disk = NULL;
|
||||
ventoy_thread_data *thread = (ventoy_thread_data *)data;
|
||||
VTOY_GPT_INFO *pstGPT = NULL;
|
||||
|
||||
vdebug("ventoy_update_thread run ...\n");
|
||||
|
||||
@@ -790,6 +791,34 @@ static void * ventoy_update_thread(void *data)
|
||||
vlog("No need to update MBR\n");
|
||||
}
|
||||
|
||||
|
||||
if (disk->vtoydata.partition_style)
|
||||
{
|
||||
pstGPT = (VTOY_GPT_INFO *)malloc(sizeof(VTOY_GPT_INFO));
|
||||
memset(pstGPT, 0, sizeof(VTOY_GPT_INFO));
|
||||
|
||||
offset = lseek(fd, 0, SEEK_SET);
|
||||
len = read(fd, pstGPT, sizeof(VTOY_GPT_INFO));
|
||||
vlog("Read GPT table offset:%llu len:%llu ...\n", (_ull)offset, (_ull)len);
|
||||
|
||||
if (pstGPT->PartTbl[1].Attr != 0x8000000000000000ULL)
|
||||
{
|
||||
vlog("Update EFI part attr from 0x%016llx to 0x%016llx\n",
|
||||
pstGPT->PartTbl[1].Attr, 0x8000000000000000ULL);
|
||||
|
||||
pstGPT->PartTbl[1].Attr = 0x8000000000000000ULL;
|
||||
pstGPT->Head.Crc = 0;
|
||||
pstGPT->Head.Crc = ventoy_crc32(&(pstGPT->Head), pstGPT->Head.Length);
|
||||
ventoy_write_gpt_part_table(fd, disk->size_in_byte, pstGPT);
|
||||
}
|
||||
else
|
||||
{
|
||||
vlog("No need to update EFI part attr\n");
|
||||
}
|
||||
free(pstGPT);
|
||||
}
|
||||
|
||||
|
||||
g_current_progress = PT_SYNC_DATA1;
|
||||
|
||||
vlog("fsync data1...\n");
|
||||
|
Reference in New Issue
Block a user