]> glassweightruler.freedombox.rocks Git - Ventoy.git/commitdiff
Fix the 'overflow is detected' error in WIMBOOT mode for large ISO file.
authorlongpanda <admin@ventoy.net>
Mon, 12 Sep 2022 13:33:47 +0000 (21:33 +0800)
committerlongpanda <admin@ventoy.net>
Mon, 12 Sep 2022 13:33:47 +0000 (21:33 +0800)
GRUB2/MOD_SRC/grub-2.04/grub-core/commands/test.c
INSTALL/grub/grub.cfg

index 6f1900d27ad6299fd61e7e7746ccc41b0e40c4a4..9669a482105abd2b83765a41fe047524d54e072e 100644 (file)
@@ -229,6 +229,13 @@ test_parse (char **args, int *argn, int argc)
              (*argn) += 3;
              continue;
            }
+      if (grub_strcmp (args[*argn + 1], "-EQ") == 0)
+           {
+             update_val (grub_strtoull (args[*argn], 0, 0)
+                         == grub_strtoull (args[*argn + 2], 0, 0), &ctx);
+             (*argn) += 3;
+             continue;
+           }
 
          if (grub_strcmp (args[*argn + 1], "-ge") == 0)
            {
@@ -237,6 +244,13 @@ test_parse (char **args, int *argn, int argc)
              (*argn) += 3;
              continue;
            }
+         if (grub_strcmp (args[*argn + 1], "-GE") == 0)
+           {
+             update_val (grub_strtoull (args[*argn], 0, 0)
+                         >= grub_strtoull (args[*argn + 2], 0, 0), &ctx);
+             (*argn) += 3;
+             continue;
+           }
 
          if (grub_strcmp (args[*argn + 1], "-gt") == 0)
            {
@@ -245,6 +259,13 @@ test_parse (char **args, int *argn, int argc)
              (*argn) += 3;
              continue;
            }
+         if (grub_strcmp (args[*argn + 1], "-GT") == 0)
+           {
+             update_val (grub_strtoull (args[*argn], 0, 0)
+                         > grub_strtoull (args[*argn + 2], 0, 0), &ctx);
+             (*argn) += 3;
+             continue;
+           }
 
          if (grub_strcmp (args[*argn + 1], "-le") == 0)
            {
@@ -253,6 +274,13 @@ test_parse (char **args, int *argn, int argc)
              (*argn) += 3;
              continue;
            }
+         if (grub_strcmp (args[*argn + 1], "-LE") == 0)
+           {
+             update_val (grub_strtoull (args[*argn], 0, 0)
+                     <= grub_strtoull (args[*argn + 2], 0, 0), &ctx);
+             (*argn) += 3;
+             continue;
+           }
 
          if (grub_strcmp (args[*argn + 1], "-lt") == 0)
            {
@@ -261,6 +289,13 @@ test_parse (char **args, int *argn, int argc)
              (*argn) += 3;
              continue;
            }
+         if (grub_strcmp (args[*argn + 1], "-LT") == 0)
+           {
+             update_val (grub_strtoull (args[*argn], 0, 0)
+                         < grub_strtoull (args[*argn + 2], 0, 0), &ctx);
+             (*argn) += 3;
+             continue;
+           }
 
          if (grub_strcmp (args[*argn + 1], "-ne") == 0)
            {
@@ -269,6 +304,13 @@ test_parse (char **args, int *argn, int argc)
              (*argn) += 3;
              continue;
            }
+         if (grub_strcmp (args[*argn + 1], "-NE") == 0)
+           {
+             update_val (grub_strtoull (args[*argn], 0, 0)
+                         != grub_strtoull (args[*argn + 2], 0, 0), &ctx);
+             (*argn) += 3;
+             continue;
+           }
 
          /* GRUB extension: compare numbers skipping prefixes.
             Useful for comparing versions. E.g. vmlinuz-2 -plt vmlinuz-11. */
index 83f0e6b44446f0343aa7a3483adb2718df9de286..487dae0d10c21e025dd72532a3848136e3102401 100644 (file)
@@ -158,7 +158,7 @@ function get_os_type {
 function vt_check_compatible_pe {
     #Check for PE without external tools
     #set compatible if ISO file is less than 80MB
-    if [ $vt_chosen_size -gt 33554432 -a $vt_chosen_size -le 83886080 ]; then
+    if [ $vt_chosen_size -GT 33554432 -a $vt_chosen_size -LE 83886080 ]; then
         set ventoy_compatible=YES    
     fi
 
@@ -770,7 +770,7 @@ function uefi_linux_menu_func {
     
     vt_linux_chain_data "${1}${chosen_path}"
 
-    if [ -n "$LoadIsoEfiDriver" -a $vt_chosen_size -lt 104857600 ]; then
+    if [ -n "$LoadIsoEfiDriver" -a $vt_chosen_size -LT 104857600 ]; then
         if [ -f (loop)/efi/clover/cloverx64.efi ]; then
             unset LoadIsoEfiDriver
         fi
@@ -1309,7 +1309,7 @@ function iso_common_menuentry {
     vt_chosen_img_path vt_chosen_path vt_chosen_size vt_chosen_name
 
     vt_parse_iso_volume "${vtoy_iso_part}${vt_chosen_path}" vt_system_id vt_volume_id vt_volume_space
-    if [ $vt_volume_space -ne $vt_chosen_size ]; then        
+    if [ $vt_volume_space -NE $vt_chosen_size ]; then        
         vt_mod $vt_chosen_size 2048 vt_chosen_size_mod
         if [ $vt_chosen_size_mod -ne 0 ]; then
             echo -e "\n $vt_volume_space $vt_chosen_size $vt_chosen_size_mod\n"
@@ -1357,7 +1357,7 @@ function iso_common_menuentry {
         fi
         
         #For iKuai8 (<64MB)
-        if [ $vt_chosen_size -le 67108864 ]; then
+        if [ $vt_chosen_size -LE 67108864 ]; then
             if vt_str_begin "$vt_chosen_name" "iKuai"; then
                 set vtMemDiskBoot=1
             fi
@@ -1799,7 +1799,7 @@ function ventoy_img_ubos {
 }
 
 function ventoy_img_recalbox {
-    if [ $vtoy_img_max_part_end -gt $vt_chosen_size ]; then
+    if [ $vtoy_img_max_part_end -GT $vt_chosen_size ]; then
         echo -e "\nPlease extend the img file size before boot it. \n"
         ventoy_pause
         return