Fix a bug that Windows ISO in local disk can not install when boot through F2 browser mode in Legacy BIOS mode.

This commit is contained in:
longpanda 2022-04-28 22:07:30 +08:00
parent fd0d335eb6
commit 0984f5ba58
7 changed files with 41 additions and 18 deletions

View file

@ -616,10 +616,9 @@ static void ventoy_dump_chain(ventoy_chain_head *chain)
printf("os_param->vtoy_disk_part_type=%u\n", chain->os_param.vtoy_disk_part_type);
printf("os_param->vtoy_img_path=<%s>\n", chain->os_param.vtoy_img_path);
printf("os_param->vtoy_img_size=<%llu>\n", chain->os_param.vtoy_img_size);
printf("os_param->vtoy_reserve[0]=<%u>\n", vtoy_reserve[0]);
printf("os_param->vtoy_reserve[1]=<%u>\n", vtoy_reserve[1]);
printf("os_param->vtoy_reserve[2]=<%u>\n", vtoy_reserve[2]);
printf("os_param->vtoy_reserve[3]=<%u>\n", vtoy_reserve[3]);
printf("os_param->vtoy_reserve[ ]=<%u %u %u %u %u %u %u>\n",
vtoy_reserve[0], vtoy_reserve[1], vtoy_reserve[2], vtoy_reserve[3],
vtoy_reserve[4], vtoy_reserve[5], vtoy_reserve[6]);
printf("os_param->vtoy_img_location_addr=<0x%llx>\n", chain->os_param.vtoy_img_location_addr);
printf("os_param->vtoy_img_location_len=<%u>\n", chain->os_param.vtoy_img_location_len);
ventoy_debug_pause();

View file

@ -1441,7 +1441,12 @@ unsigned int ventoy_int13_hook (ventoy_chain_head *chain)
natural_drive = 0xE0; /* just set a cdrom drive number 224 */
}
if (chain->disk_drive >= 0x80 && chain->drive_map >= 0x80)
if (chain->os_param.vtoy_reserved[6])
{
g_drive_map1 = 0x80;
g_drive_map2 = 0x81;
}
else if (chain->disk_drive >= 0x80 && chain->drive_map >= 0x80)
{
g_drive_map1 = chain->disk_drive;
g_drive_map2 = chain->drive_map;

View file

@ -86,7 +86,7 @@ typedef struct ventoy_os_param
grub_uint64_t vtoy_img_location_addr;
grub_uint32_t vtoy_img_location_len;
grub_uint64_t vtoy_reserved[4]; // Internal use by ventoy
grub_uint8_t vtoy_reserved[32]; // Internal use by ventoy
grub_uint8_t vtoy_disk_signature[4];