mirror of
https://github.com/ventoy/Ventoy.git
synced 2024-11-11 13:10:38 +00:00
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)
|
||||
{
|
||||
int fd;
|
||||
int updateMBR;
|
||||
ssize_t len;
|
||||
off_t offset;
|
||||
MBR_HEAD MBR;
|
||||
@ -742,17 +743,32 @@ static void * ventoy_update_thread(void *data)
|
||||
len = write(fd, disk->vtoydata.rsvdata, sizeof(disk->vtoydata.rsvdata));
|
||||
vlog("Writing reserve data offset:%llu len:%llu ...\n", (_ull)offset, (_ull)len);
|
||||
|
||||
updateMBR = 0;
|
||||
memcpy(&MBR, &(disk->vtoydata.gptinfo.MBR), 512);
|
||||
|
||||
if (disk->vtoydata.partition_style == 0 && MBR.PartTbl[0].Active == 0)
|
||||
{
|
||||
MBR.PartTbl[0].Active = 0x80;
|
||||
MBR.PartTbl[1].Active = 0;
|
||||
MBR.PartTbl[2].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);
|
||||
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;
|
||||
|
Loading…
Reference in New Issue
Block a user