diff --git a/GRUB2/MOD_SRC/grub-2.04/grub-core/gfxmenu/gui_label.c b/GRUB2/MOD_SRC/grub-2.04/grub-core/gfxmenu/gui_label.c index e1c1d478..3fd1390a 100644 --- a/GRUB2/MOD_SRC/grub-2.04/grub-core/gfxmenu/gui_label.c +++ b/GRUB2/MOD_SRC/grub-2.04/grub-core/gfxmenu/gui_label.c @@ -28,6 +28,7 @@ extern int g_ventoy_memdisk_mode; extern int g_ventoy_iso_raw; +extern int g_ventoy_grub2_mode; extern int g_ventoy_iso_uefi_drv; static const char *align_options[] = @@ -205,6 +206,9 @@ label_set_property (void *vself, const char *name, const char *value) else if (grub_strcmp (value, "@VTOY_ISO_RAW@") == 0) { value = g_ventoy_iso_raw ? grub_env_get("VTOY_ISO_RAW_STR") : " "; } + else if (grub_strcmp (value, "@VTOY_GRUB2_MODE@") == 0) { + value = g_ventoy_grub2_mode ? grub_env_get("VTOY_GRUB2_MODE_STR") : " "; + } else if (grub_strcmp (value, "@VTOY_ISO_UEFI_DRV@") == 0) { value = g_ventoy_iso_uefi_drv ? grub_env_get("VTOY_ISO_UEFI_DRV_STR") : " "; } diff --git a/GRUB2/MOD_SRC/grub-2.04/grub-core/normal/menu.c b/GRUB2/MOD_SRC/grub-2.04/grub-core/normal/menu.c index a83aecca..f682fa8a 100644 --- a/GRUB2/MOD_SRC/grub-2.04/grub-core/normal/menu.c +++ b/GRUB2/MOD_SRC/grub-2.04/grub-core/normal/menu.c @@ -37,6 +37,7 @@ int g_ventoy_menu_refresh = 0; int g_ventoy_memdisk_mode = 0; int g_ventoy_iso_raw = 0; +int g_ventoy_grub2_mode = 0; int g_ventoy_iso_uefi_drv = 0; int g_ventoy_last_entry = -1; int g_ventoy_suppress_esc = 0; @@ -897,6 +898,12 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot) g_ventoy_menu_refresh = 1; goto refresh; + case (GRUB_TERM_CTRL | 'r'): + menu_fini (); + g_ventoy_grub2_mode = 1 - g_ventoy_grub2_mode; + g_ventoy_menu_refresh = 1; + goto refresh; + case (GRUB_TERM_CTRL | 'u'): menu_fini (); g_ventoy_iso_uefi_drv = 1 - g_ventoy_iso_uefi_drv; diff --git a/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy.c b/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy.c index 6d288c73..c5d3fa32 100644 --- a/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy.c +++ b/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy.c @@ -3023,6 +3023,10 @@ static grub_err_t ventoy_cmd_check_mode(grub_extcmd_context_t ctxt, int argc, ch { return g_ventoy_iso_uefi_drv ? 0 : 1; } + else if (args[0][0] == '3') + { + return g_ventoy_grub2_mode ? 0 : 1; + } return 1; } diff --git a/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_def.h b/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_def.h index f5911565..349a2337 100644 --- a/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_def.h +++ b/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_def.h @@ -903,6 +903,7 @@ extern int g_ventoy_suppress_esc; extern int g_ventoy_last_entry; extern int g_ventoy_memdisk_mode; extern int g_ventoy_iso_raw; +extern int g_ventoy_grub2_mode; extern int g_ventoy_iso_uefi_drv; extern int g_ventoy_case_insensitive; extern grub_uint8_t g_ventoy_chain_type; diff --git a/INSTALL/grub/grub.cfg b/INSTALL/grub/grub.cfg index e8fd9715..89ea9808 100644 --- a/INSTALL/grub/grub.cfg +++ b/INSTALL/grub/grub.cfg @@ -648,10 +648,14 @@ function uefi_linux_menu_func { if [ -n "$vtoy_chain_mem_addr" ]; then ventoy_acpi_param ${vtoy_chain_mem_addr} 2048 ventoy_cli_console - - if [ "$VTOY_EFI_ARCH" != "mips" ]; then - chainloader ${vtoy_path}/ventoy_${VTOY_EFI_ARCH}.efi fallback env_param=${env_param} isoefi=${LoadIsoEfiDriver} FirstTry=${FirstTryBootFile} ${vtdebug_flag} mem:${vtoy_chain_mem_addr}:size:${vtoy_chain_mem_size} - boot + + if vt_check_mode 3; then + ventoy_debug_pause + else + if [ "$VTOY_EFI_ARCH" != "mips" ]; then + chainloader ${vtoy_path}/ventoy_${VTOY_EFI_ARCH}.efi fallback env_param=${env_param} isoefi=${LoadIsoEfiDriver} FirstTry=${FirstTryBootFile} ${vtdebug_flag} mem:${vtoy_chain_mem_addr}:size:${vtoy_chain_mem_size} + boot + fi fi # fallback @@ -1620,6 +1624,7 @@ set VTOY_DEFAULT_MENU_MODE=0 set VTOY_MEM_DISK_STR="[Memdisk]" set VTOY_ISO_RAW_STR="Compatible Mode" +set VTOY_GRUB2_MODE_STR="GRUB2 Mode" set VTOY_ISO_UEFI_DRV_STR="UEFI FS" set VTOY_F2_CMD="ventoy_power" diff --git a/INSTALL/grub/themes/ventoy/theme.txt b/INSTALL/grub/themes/ventoy/theme.txt index dda7f27f..a8f0585d 100644 --- a/INSTALL/grub/themes/ventoy/theme.txt +++ b/INSTALL/grub/themes/ventoy/theme.txt @@ -70,6 +70,14 @@ terminal-box: "terminal_box_*.png" } ++ hbox{ + left = 30%+100 + top = 95%-50 + width = 10% + height = 25 + + label {text = "@VTOY_GRUB2_MODE@" color = "red" align = "left"} +} + + hbox{ left = 90% top = 55