mirror of https://github.com/ventoy/Ventoy.git
Fix a bug for Linux GUI program when update from old release. (#1590)
This commit is contained in:
parent
480afee1a7
commit
9e2e4ec0a9
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -685,6 +685,7 @@ static int ventoy_write_gpt_part_table(int fd, uint64_t disksize, VTOY_GPT_INFO
|
||||||
static void * ventoy_update_thread(void *data)
|
static void * ventoy_update_thread(void *data)
|
||||||
{
|
{
|
||||||
int fd;
|
int fd;
|
||||||
|
int updateMBR;
|
||||||
ssize_t len;
|
ssize_t len;
|
||||||
off_t offset;
|
off_t offset;
|
||||||
MBR_HEAD MBR;
|
MBR_HEAD MBR;
|
||||||
|
@ -742,17 +743,32 @@ static void * ventoy_update_thread(void *data)
|
||||||
len = write(fd, disk->vtoydata.rsvdata, sizeof(disk->vtoydata.rsvdata));
|
len = write(fd, disk->vtoydata.rsvdata, sizeof(disk->vtoydata.rsvdata));
|
||||||
vlog("Writing reserve data offset:%llu len:%llu ...\n", (_ull)offset, (_ull)len);
|
vlog("Writing reserve data offset:%llu len:%llu ...\n", (_ull)offset, (_ull)len);
|
||||||
|
|
||||||
|
updateMBR = 0;
|
||||||
memcpy(&MBR, &(disk->vtoydata.gptinfo.MBR), 512);
|
memcpy(&MBR, &(disk->vtoydata.gptinfo.MBR), 512);
|
||||||
|
|
||||||
if (disk->vtoydata.partition_style == 0 && MBR.PartTbl[0].Active == 0)
|
if (disk->vtoydata.partition_style == 0 && MBR.PartTbl[0].Active == 0)
|
||||||
{
|
{
|
||||||
MBR.PartTbl[0].Active = 0x80;
|
MBR.PartTbl[0].Active = 0x80;
|
||||||
MBR.PartTbl[1].Active = 0;
|
MBR.PartTbl[1].Active = 0;
|
||||||
MBR.PartTbl[2].Active = 0;
|
MBR.PartTbl[2].Active = 0;
|
||||||
MBR.PartTbl[3].Active = 0;
|
MBR.PartTbl[3].Active = 0;
|
||||||
|
updateMBR = 1;
|
||||||
|
vlog("set MBR partition 1 active flag enabled\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (MBR.BootCode[0x190] != 0x56 || MBR.BootCode[0x191] != 0x54)
|
||||||
|
{
|
||||||
|
vlog("set VT data %02x %02x\n", MBR.BootCode[0x190], MBR.BootCode[0x191]);
|
||||||
|
MBR.BootCode[0x190] = 0x56;
|
||||||
|
MBR.BootCode[0x191] = 0x54;
|
||||||
|
updateMBR = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (updateMBR)
|
||||||
|
{
|
||||||
offset = lseek(fd, 0, SEEK_SET);
|
offset = lseek(fd, 0, SEEK_SET);
|
||||||
len = write(fd, &MBR, 512);
|
len = write(fd, &MBR, 512);
|
||||||
vlog("set MBR partition 1 active flag enabled offset:%llu len:%llu\n", (_ull)offset, (_ull)len);
|
vlog("update MBR offset:%llu len:%llu\n", (_ull)offset, (_ull)len);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_current_progress = PT_SYNC_DATA1;
|
g_current_progress = PT_SYNC_DATA1;
|
||||||
|
|
Loading…
Reference in New Issue