X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/blobdiff_plain/a5c706511b84eb0f9e5f042f18f2f3c9602977c4..88dcceeabc61862ee3965d4ea266fccceb1e5838:/INSTALL/grub/grub.cfg diff --git a/INSTALL/grub/grub.cfg b/INSTALL/grub/grub.cfg index e7627f6..c784739 100644 --- a/INSTALL/grub/grub.cfg +++ b/INSTALL/grub/grub.cfg @@ -30,6 +30,30 @@ function ventoy_debug_pause { fi } +function ventoy_cli_console { + if [ "$grub_platform" = "pc" ]; then + #terminal_output vga_text + terminal_output console + else + if [ "$vtoy_display_mode" != "CLI" ]; then + terminal_output console + fi + fi +} + +function ventoy_gui_console { + if [ "$grub_platform" = "pc" ]; then + if [ "$vtoy_display_mode" = "CLI" ]; then + terminal_output console + else + terminal_output gfxterm + fi + else + if [ "$vtoy_display_mode" != "CLI" ]; then + terminal_output gfxterm + fi + fi +} function ventoy_power { configfile $prefix/power.cfg @@ -152,7 +176,11 @@ function distro_specify_initrd_file_phase2 { vt_linux_specify_initrd_file /live/initrd.img elif [ -f (loop)/initrd.img ]; then vt_linux_specify_initrd_file /initrd.img - + elif [ -f (loop)/sysresccd/boot/x86_64/sysresccd.img ]; then + vt_linux_specify_initrd_file /sysresccd/boot/x86_64/sysresccd.img + elif [ -f (loop)/CDlinux/initrd ]; then + vt_linux_specify_initrd_file /CDlinux/initrd + fi } @@ -184,7 +212,7 @@ function uefi_windows_menu_func { ventoy_debug_pause if [ -n "$vtoy_chain_mem_addr" ]; then - terminal_output console + ventoy_cli_console chainloader ${vtoy_path}/ventoy_x64.efi env_param=${env_param} isoefi=${LoadIsoEfiDriver} ${vtdebug_flag} mem:${vtoy_chain_mem_addr}:size:${vtoy_chain_mem_size} boot else @@ -260,7 +288,7 @@ function uefi_linux_menu_func { vt_linux_chain_data ${1}${chosen_path} if [ -n "$vtoy_chain_mem_addr" ]; then - terminal_output console + ventoy_cli_console chainloader ${vtoy_path}/ventoy_x64.efi env_param=${env_param} isoefi=${LoadIsoEfiDriver} FirstTry=${FirstTryBootFile} ${vtdebug_flag} mem:${vtoy_chain_mem_addr}:size:${vtoy_chain_mem_size} boot else @@ -325,7 +353,7 @@ function uefi_iso_menu_func { uefi_linux_menu_func $1 ${chosen_path} fi - terminal_output gfxterm + ventoy_gui_console } function uefi_iso_memdisk { @@ -334,9 +362,11 @@ function uefi_iso_memdisk { echo 'Loading ISO file to memory ...' vt_load_iso_to_mem ${1}${chosen_path} vtoy_iso_buf - terminal_output console + ventoy_cli_console chainloader ${vtoy_path}/ventoy_x64.efi memdisk env_param=${env_param} isoefi=${LoadIsoEfiDriver} ${vtdebug_flag} mem:${vtoy_iso_buf_addr}:size:${vtoy_iso_buf_size} boot + + ventoy_gui_console } @@ -502,12 +532,16 @@ function iso_common_menuentry { fi } -function iso_unsupport_menuentry { +function common_unsupport_menuentry { echo -e "\n The name of the iso file could NOT contain space or non-ascii characters. \n" + echo -e " 文件名中不能有中文或空格 \n" echo -e "\n Will return to main menu after 10 seconds ...\n" sleep 10 } +function iso_unsupport_menuentry { + common_unsupport_menuentry +} function wim_common_menuentry { vt_chosen_img_path chosen_path @@ -519,8 +553,9 @@ function wim_common_menuentry { if [ "$grub_platform" = "pc" ]; then linux16 $vtoy_path/ipxe.krn ${vtdebug_flag} mem:${vtoy_chain_mem_addr}:size:${vtoy_chain_mem_size} else - terminal_output console + ventoy_cli_console chainloader ${vtoy_path}/ventoy_x64.efi env_param=${env_param} isoefi=${LoadIsoEfiDriver} ${vtdebug_flag} mem:${vtoy_chain_mem_addr}:size:${vtoy_chain_mem_size} + ventoy_gui_console fi boot else @@ -530,11 +565,24 @@ function wim_common_menuentry { } function wim_unsupport_menuentry { - echo -e "\n The name of the wim file could NOT contain space or non-ascii characters. \n" - echo -e "\n Will return to main menu after 10 seconds ...\n" - sleep 10 + common_unsupport_menuentry } +function efi_common_menuentry { + vt_chosen_img_path chosen_path + + ventoy_cli_console + chainloader ${iso_path}${chosen_path} + boot + ventoy_gui_console +} + +function efi_unsupport_menuentry { + common_unsupport_menuentry +} + + + ############################################################# ############################################################# ############################################################# @@ -543,16 +591,13 @@ function wim_unsupport_menuentry { ############################################################# ############################################################# -set VENTOY_VERSION="1.0.13" +set VENTOY_VERSION="1.0.15" # Default menu display mode, you can change it as you want. # 0: List mode # 1: TreeView mode set VTOY_DEFAULT_MENU_MODE=0 -#disable timeout -unset timeout - set VTOY_MEM_DISK_STR="[Memdisk]" set VTOY_ISO_RAW_STR="Compatible Mode" set VTOY_ISO_UEFI_DRV_STR="UEFI FS" @@ -579,6 +624,13 @@ if [ "$vtoy_dev" = "tftp" ]; then fi done loadfont ascii + + if [ -f $iso_path/ventoy/ventoy.json ]; then + set vt_plugin_path=$iso_path + else + set vt_plugin_path=$prefix + vt_load_plugin $vt_plugin_path + fi else if [ "$prefix" = "(ventoydisk)/grub" ]; then set vtoy_path=(ventoydisk)/ventoy @@ -589,6 +641,7 @@ else set iso_path=($vtoy_dev,1) set vtoy_efi_part=($vtoy_dev,2) loadfont unicode + set vt_plugin_path=$iso_path fi @@ -597,6 +650,12 @@ if [ -f $iso_path/ventoy/ventoy.json ]; then vt_load_plugin $iso_path fi +if [ -n "$VTOY_MENU_TIMEOUT" ]; then + set timeout=$VTOY_MENU_TIMEOUT +else + unset timeout +fi + if [ -f $iso_path/ventoy/ventoy_wimboot.img ]; then vt_load_wimboot $iso_path/ventoy/ventoy_wimboot.img elif [ -f $vtoy_efi_part/ventoy/ventoy_wimboot.img ]; then @@ -619,20 +678,17 @@ else set gfxmode=1920x1080,1366x768,1024x768 fi -if [ -n "$vtoy_theme" ]; then - set theme=$vtoy_theme -else - set theme=$prefix/themes/ventoy/theme.txt -fi - if [ "$vtoy_display_mode" = "CLI" ]; then terminal_output console -else +else + if [ -n "$vtoy_theme" ]; then + set theme=$vtoy_theme + else + set theme=$prefix/themes/ventoy/theme.txt + fi terminal_output gfxterm fi -#vtdebug on - #colect all image files (iso files) set ventoy_img_count=0 vt_list_img $iso_path ventoy_img_count