X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/blobdiff_plain/a5c706511b84eb0f9e5f042f18f2f3c9602977c4..a6d3ecc7a9b01e6cd7a08bb03ca72a88f928df8d:/INSTALL/grub/grub.cfg diff --git a/INSTALL/grub/grub.cfg b/INSTALL/grub/grub.cfg index e7627f6..80279bd 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,26 @@ 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 + elif [ -f (loop)/parabola/boot/x86_64/parabolaiso.img ]; then + vt_linux_specify_initrd_file /parabola/boot/x86_64/parabolaiso.img + if [ -f (loop)/parabola/boot/i686/parabolaiso.img ]; then + vt_linux_specify_initrd_file /parabola/boot/i686/parabolaiso.img + fi + elif [ -f (loop)/EFI/BOOT/initrd.img ]; then + #Qubes + vt_linux_specify_initrd_file /EFI/BOOT/initrd.img + if [ "$grub_platform" != "pc" ]; then + vt_add_replace_file 0 "initrd.img" + fi + elif [ -f (loop)/initrd ]; then + vt_linux_specify_initrd_file /initrd + elif [ -f (loop)/live/initrd1 ]; then + vt_linux_specify_initrd_file /live/initrd1 + fi } @@ -184,7 +227,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 @@ -250,6 +293,10 @@ function uefi_linux_menu_func { elif [ -f (loop)/EFI/BOOT/initrd.gz ]; then vt_add_replace_file $vtindex "EFI\\BOOT\\initrd.gz" fi + elif [ -d (loop)/EFI/boot/entries ]; then + if [ -f (loop)/parabola/boot/x86_64/parabolaiso.img ]; then + vt_add_replace_file 0 "EFI\\parabolaiso\\parabolaiso.img" + fi elif [ -e (loop)/syslinux/alt0/full.cz ]; then vt_add_replace_file 0 "EFI\\BOOT\\full.cz" set FirstTryBootFile='@EFI@BOOT@grubx64.efi' @@ -260,7 +307,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 +372,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 +381,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 +551,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 +572,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 +584,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 +610,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 +643,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 +660,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 +669,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 +697,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