]> glassweightruler.freedombox.rocks Git - Ventoy.git/commitdiff
Fix a bug when use workaround for Legacy BIOS access limitation with GPT partition...
authorlongpanda <admin@ventoy.net>
Fri, 8 Jan 2021 12:08:32 +0000 (20:08 +0800)
committerlongpanda <admin@ventoy.net>
Fri, 8 Jan 2021 12:08:32 +0000 (20:08 +0800)
GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy.c

index 6b4ee0133b245b8a2d78cdd5ff9d9b1778320563..a1a8cf8e8b3711299d0b5303adeb4c835fe94b4a 100644 (file)
@@ -1772,12 +1772,25 @@ int ventoy_check_device(grub_device_t dev)
 
     if (workaround)
     {
 
     if (workaround)
     {
-        ventoy_part_table *PartTbl = g_ventoy_part_info->MBR.PartTbl;
-        if (PartTbl[1].StartSectorId != PartTbl[0].StartSectorId + PartTbl[0].SectorCount ||
-            PartTbl[1].SectorCount != 65536)
+        if (grub_strncmp(g_ventoy_part_info->Head.Signature, "EFI PART", 8) == 0)
         {
         {
-            grub_file_close(file);
-            return ventoy_check_device_result(6);
+            ventoy_gpt_part_tbl *PartTbl = g_ventoy_part_info->PartTbl;
+            if (PartTbl[1].StartLBA != PartTbl[0].LastLBA + 1 ||
+                (PartTbl[1].LastLBA + 1 - PartTbl[1].StartLBA) != 65536)
+            {
+                grub_file_close(file);
+                return ventoy_check_device_result(6);
+            }
+        }
+        else
+        {
+            ventoy_part_table *PartTbl = g_ventoy_part_info->MBR.PartTbl;
+            if (PartTbl[1].StartSectorId != PartTbl[0].StartSectorId + PartTbl[0].SectorCount ||
+                PartTbl[1].SectorCount != 65536)
+            {
+                grub_file_close(file);
+                return ventoy_check_device_result(6);
+            }
         }
     }
     else
         }
     }
     else