X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/blobdiff_plain/7a0b2d945e8c09ef377fbcdad1164ea070e75245..c8e86938feedfcdb089a26cc18d476ead303d50e:/INSTALL/grub/grub.cfg diff --git a/INSTALL/grub/grub.cfg b/INSTALL/grub/grub.cfg index 0c51f5c..2a2175d 100644 --- a/INSTALL/grub/grub.cfg +++ b/INSTALL/grub/grub.cfg @@ -17,23 +17,7 @@ #************************************************************************************ function ventoy_power { - echo '<1> Reboot' - echo '<2> Halt' - echo '<0> Return to menu' - echo -e '\nPlease enter your choice:' - - unset vtOpt - read vtOpt - - if [ "$vtOpt" = "1" ]; then - echo -e '\n\nSystem is rebooting ... \n' - sleep 1 - reboot - elif [ "$vtOpt" = "2" ]; then - echo -e '\n\nSystem is halting ... \n' - sleep 1 - halt - fi + configfile ${vtoy_path}/grub/power.cfg } function get_os_type { @@ -239,6 +223,8 @@ function uefi_iso_menu_func { fi vt_chosen_img_path chosen_path + vt_select_auto_install ${chosen_path} + vt_select_persistence ${chosen_path} if vt_is_udf ${1}${chosen_path}; then set ventoy_fs_probe=udf @@ -386,6 +372,8 @@ function legacy_iso_menu_func { fi vt_chosen_img_path chosen_path + vt_select_auto_install ${chosen_path} + vt_select_persistence ${chosen_path} if vt_is_udf ${1}${chosen_path}; then set ventoy_fs_probe=udf @@ -431,7 +419,7 @@ function legacy_iso_memdisk { boot } -function common_menuentry { +function iso_common_menuentry { if [ "$grub_platform" = "pc" ]; then if vt_check_mode 0; then legacy_iso_memdisk $iso_path @@ -447,6 +435,39 @@ function common_menuentry { fi } +function iso_unsupport_menuentry { + echo -e "\n The name of the iso file could NOT contain space or non-ascii characters. \n" + echo -e "\n Will return to main menu after 10 seconds ...\n" + sleep 10 +} + + +function wim_common_menuentry { + vt_chosen_img_path chosen_path + vt_wim_chain_data ${iso_path}${chosen_path} + if [ -n "${vtdebug_flag}" ]; then + sleep 5 + fi + + if [ -n "$vtoy_chain_mem_addr" ]; then + 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 + chainloader ${vtoy_path}/ventoy_x64.efi env_param=${env_param} isoefi=${LoadIsoEfiDriver} ${vtdebug_flag} mem:${vtoy_chain_mem_addr}:size:${vtoy_chain_mem_size} + fi + boot + else + echo "chain empty failed" + sleep 5 + fi +} + +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 +} ############################################################# ############################################################# @@ -456,7 +477,7 @@ function common_menuentry { ############################################################# ############################################################# -set VENTOY_VERSION="1.0.11" +set VENTOY_VERSION="1.0.12" # Default menu display mode, you can change it as you want. # 0: List mode @@ -466,7 +487,7 @@ set VTOY_DEFAULT_MENU_MODE=0 #disable timeout unset timeout -set VTOY_MEM_DISK_STR="MEMDISK" +set VTOY_MEM_DISK_STR="[Memdisk]" set VTOY_ISO_RAW_STR="ISO RAW" set VTOY_ISO_UEFI_DRV_STR="UEFI FS" @@ -485,12 +506,14 @@ if [ "$vtoy_dev" = "tftp" ]; then for vtid in 0 1 2 3; do if [ -d (hd$vtid,2)/ventoy ]; then set iso_path=(hd$vtid,1) + set vtoy_efi_part=(hd$vtid,2) break fi done else set vtoy_path=($root)/ventoy set iso_path=($vtoy_dev,1) + set vtoy_efi_part=($vtoy_dev,2) fi loadfont ascii @@ -500,6 +523,12 @@ if [ -f $iso_path/ventoy/ventoy.json ]; then vt_load_plugin $iso_path 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 + vt_load_wimboot $vtoy_efi_part/ventoy/ventoy_wimboot.img +fi + if [ $VTOY_DEFAULT_MENU_MODE -eq 0 ]; then set VTOY_F3_CMD="vt_dynamic_menu 1 1" @@ -536,7 +565,14 @@ if [ $ventoy_img_count -gt 0 ]; then vt_dynamic_menu 0 1 fi else - menuentry "No ISO files found (Press enter to reboot ...)" { + if [ -n "$VTOY_NO_ISO_TIP" ]; then + NO_ISO_MENU="No ISO files found, $VTOY_NO_ISO_TIP" + elif [ -n "$VTOY_DEFAULT_SEARCH_ROOT" ]; then + NO_ISO_MENU="No ISO files found, please check VTOY_DEFAULT_SEARCH_ROOT" + else + NO_ISO_MENU="No ISO files found" + fi + menuentry "$NO_ISO_MENU (Press enter to reboot ...)" { echo -e "\n Rebooting ... " reboot }