mirror of
https://github.com/ventoy/Ventoy.git
synced 2025-02-25 12:29:20 -05:00
grub2 boot mode for UEFI
This commit is contained in:
parent
8ded032c92
commit
e23e76f54e
@ -28,6 +28,7 @@
|
|||||||
|
|
||||||
extern int g_ventoy_memdisk_mode;
|
extern int g_ventoy_memdisk_mode;
|
||||||
extern int g_ventoy_iso_raw;
|
extern int g_ventoy_iso_raw;
|
||||||
|
extern int g_ventoy_grub2_mode;
|
||||||
extern int g_ventoy_iso_uefi_drv;
|
extern int g_ventoy_iso_uefi_drv;
|
||||||
|
|
||||||
static const char *align_options[] =
|
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) {
|
else if (grub_strcmp (value, "@VTOY_ISO_RAW@") == 0) {
|
||||||
value = g_ventoy_iso_raw ? grub_env_get("VTOY_ISO_RAW_STR") : " ";
|
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) {
|
else if (grub_strcmp (value, "@VTOY_ISO_UEFI_DRV@") == 0) {
|
||||||
value = g_ventoy_iso_uefi_drv ? grub_env_get("VTOY_ISO_UEFI_DRV_STR") : " ";
|
value = g_ventoy_iso_uefi_drv ? grub_env_get("VTOY_ISO_UEFI_DRV_STR") : " ";
|
||||||
}
|
}
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
int g_ventoy_menu_refresh = 0;
|
int g_ventoy_menu_refresh = 0;
|
||||||
int g_ventoy_memdisk_mode = 0;
|
int g_ventoy_memdisk_mode = 0;
|
||||||
int g_ventoy_iso_raw = 0;
|
int g_ventoy_iso_raw = 0;
|
||||||
|
int g_ventoy_grub2_mode = 0;
|
||||||
int g_ventoy_iso_uefi_drv = 0;
|
int g_ventoy_iso_uefi_drv = 0;
|
||||||
int g_ventoy_last_entry = -1;
|
int g_ventoy_last_entry = -1;
|
||||||
int g_ventoy_suppress_esc = 0;
|
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;
|
g_ventoy_menu_refresh = 1;
|
||||||
goto refresh;
|
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'):
|
case (GRUB_TERM_CTRL | 'u'):
|
||||||
menu_fini ();
|
menu_fini ();
|
||||||
g_ventoy_iso_uefi_drv = 1 - g_ventoy_iso_uefi_drv;
|
g_ventoy_iso_uefi_drv = 1 - g_ventoy_iso_uefi_drv;
|
||||||
|
@ -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;
|
return g_ventoy_iso_uefi_drv ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
else if (args[0][0] == '3')
|
||||||
|
{
|
||||||
|
return g_ventoy_grub2_mode ? 0 : 1;
|
||||||
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -903,6 +903,7 @@ extern int g_ventoy_suppress_esc;
|
|||||||
extern int g_ventoy_last_entry;
|
extern int g_ventoy_last_entry;
|
||||||
extern int g_ventoy_memdisk_mode;
|
extern int g_ventoy_memdisk_mode;
|
||||||
extern int g_ventoy_iso_raw;
|
extern int g_ventoy_iso_raw;
|
||||||
|
extern int g_ventoy_grub2_mode;
|
||||||
extern int g_ventoy_iso_uefi_drv;
|
extern int g_ventoy_iso_uefi_drv;
|
||||||
extern int g_ventoy_case_insensitive;
|
extern int g_ventoy_case_insensitive;
|
||||||
extern grub_uint8_t g_ventoy_chain_type;
|
extern grub_uint8_t g_ventoy_chain_type;
|
||||||
|
@ -648,10 +648,14 @@ function uefi_linux_menu_func {
|
|||||||
if [ -n "$vtoy_chain_mem_addr" ]; then
|
if [ -n "$vtoy_chain_mem_addr" ]; then
|
||||||
ventoy_acpi_param ${vtoy_chain_mem_addr} 2048
|
ventoy_acpi_param ${vtoy_chain_mem_addr} 2048
|
||||||
ventoy_cli_console
|
ventoy_cli_console
|
||||||
|
|
||||||
if [ "$VTOY_EFI_ARCH" != "mips" ]; then
|
if vt_check_mode 3; 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}
|
ventoy_debug_pause
|
||||||
boot
|
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
|
fi
|
||||||
|
|
||||||
# fallback
|
# fallback
|
||||||
@ -1620,6 +1624,7 @@ set VTOY_DEFAULT_MENU_MODE=0
|
|||||||
|
|
||||||
set VTOY_MEM_DISK_STR="[Memdisk]"
|
set VTOY_MEM_DISK_STR="[Memdisk]"
|
||||||
set VTOY_ISO_RAW_STR="Compatible Mode"
|
set VTOY_ISO_RAW_STR="Compatible Mode"
|
||||||
|
set VTOY_GRUB2_MODE_STR="GRUB2 Mode"
|
||||||
set VTOY_ISO_UEFI_DRV_STR="UEFI FS"
|
set VTOY_ISO_UEFI_DRV_STR="UEFI FS"
|
||||||
|
|
||||||
set VTOY_F2_CMD="ventoy_power"
|
set VTOY_F2_CMD="ventoy_power"
|
||||||
|
@ -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{
|
+ hbox{
|
||||||
left = 90%
|
left = 90%
|
||||||
top = 55
|
top = 55
|
||||||
|
Loading…
x
Reference in New Issue
Block a user