X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/blobdiff_plain/511b8091ebc60586efef0e3d07205f6b5bc49345..83f22173a55072e3c86286cfe613565dd7a85a87:/INSTALL/grub/grub.cfg diff --git a/INSTALL/grub/grub.cfg b/INSTALL/grub/grub.cfg index 179cc6d..1026014 100644 --- a/INSTALL/grub/grub.cfg +++ b/INSTALL/grub/grub.cfg @@ -16,6 +16,12 @@ # #************************************************************************************ +if [ "$grub_platform" = "pc" ]; then + insmod setkey + insmod regexp + insmod video_fb +fi + function ventoy_pause { echo "press Enter to continue ......" read vtTmpPause @@ -65,6 +71,10 @@ function ventoy_vcfg_proc { fi } +function ventoy_language { + configfile $prefix/menulang.cfg +} + function ventoy_diagnosis { vt_enum_video_mode configfile $prefix/debug.cfg @@ -81,7 +91,7 @@ function ventoy_ext_menu { unset ventoy_new_context else echo "ventoy_grub.cfg NOT exist." - echo -e "\npress ENTER to exit ..." + echo -V "VTMENU_ENTER_EXIT ..." read vtInputKey fi } @@ -99,8 +109,9 @@ function ventoy_show_help { fi loopback vt_help_tarfs mem:${vtoy_help_txt_mem_addr}:size:${vtoy_help_txt_mem_size} - if [ -f "(vt_help_tarfs)/help/${VTOY_HELP_TXT_LANGUAGE}.txt" ]; then - cat "(vt_help_tarfs)/help/${VTOY_HELP_TXT_LANGUAGE}.txt" + vt_cur_menu_lang vtCurLang + if [ -f "(vt_help_tarfs)/help/${vtCurLang}.txt" ]; then + cat "(vt_help_tarfs)/help/${vtCurLang}.txt" else cat "(vt_help_tarfs)/help/en_US.txt" fi @@ -841,6 +852,13 @@ function uefi_linux_menu_func { configfile "mem:${vt_sys_menu_mem_addr}:size:${vt_sys_menu_mem_size}" fi fi + + if [ $vtback_cfg_find -eq 0 ]; then + if [ -f (loop)/boot/isolinux/syslnx64.cfg ]; then + syslinux_configfile (loop)/boot/isolinux/syslnx64.cfg + set vtback_cfg_find=1 + fi + fi if [ "$vtback_cfg_find" = "0" ]; then echo " " @@ -1308,6 +1326,13 @@ function legacy_linux_menu_func { configfile "mem:${vt_sys_menu_mem_addr}:size:${vt_sys_menu_mem_size}" fi fi + + if [ $vtback_cfg_find -eq 0 ]; then + if [ -f (loop)/boot/isolinux/syslnx64.cfg ]; then + syslinux_configfile (loop)/boot/isolinux/syslnx64.cfg + set vtback_cfg_find=1 + fi + fi vt_unset_boot_opt set root=$vtback_root @@ -1476,7 +1501,7 @@ function iso_common_menuentry { echo -e "\n $vt_volume_space $vt_chosen_size $vt_chosen_size_mod\n" echo -e "\n The size of the iso file \"$vt_chosen_size\" is invalid. File corrupted ?\n" echo -e " 此ISO文件的大小 \"$vt_chosen_size\" 有问题,请确认文件是否损坏。\n" - echo -e "\n press ENTER to continue (请按 回车 键继续) ..." + echo -v "VTMENU_ENTER_CONTINUE ..." read vtInputKey fi fi @@ -1564,7 +1589,7 @@ function miso_common_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 "\npress ENTER to exit (请按 回车 键返回) ..." + echo -V "VTMENU_ENTER_EXIT ..." read vtInputKey } @@ -1711,7 +1736,7 @@ function vhd_common_menuentry { echo -e "!!! WARNING !!!\n" echo -e "\nPartition1 ($vtoy_iso_fs) is NOT ntfs, the VHD(x) file may not boot normally \n" echo -e "\nVHD(x) 文件所在分区不是 ntfs 格式, 可能无法正常启动 \n\n" - echo -n "press ENTER to continue boot (请按 回车 键继续) ..." + echo -vn "VTMENU_ENTER_CONTINUE ..." read vtInputKey fi fi @@ -1820,7 +1845,7 @@ function vtoy_unsupport_menuentry { function only_uefi_tip { echo -e "\n This IMG file is only supported in UEFI mode. \n" - echo -e "\n press ENTER to exit ..." + echo -V "VTMENU_ENTER_EXIT ..." read vtInputKey } @@ -2078,7 +2103,7 @@ function ventoy_img_openwrt { ventoy_gui_console echo -e "\n ventoy_openwrt.xz not found. Please refer https://www.ventoy.net/en/doc_openwrt.html.\n" echo -e " 未找到 ventoy_openwrt.xz 文件。请参考 https://www.ventoy.net/cn/doc_openwrt.html\n" - echo -e "\n press ENTER to exit (请按 回车 键返回) ..." + echo -V "VTMENU_ENTER_EXIT ..." read vtInputKey ventoy_cli_console return @@ -2210,7 +2235,7 @@ function ventoy_img_memtest86 { function img_unsupport_tip { echo -e "\n This IMG file is NOT supported now. \n" echo -e " 当前不支持启动此 IMG 文件 \n" - echo -e "\npress ENTER to exit (请按 回车 键返回) ..." + echo -V "VTMENU_ENTER_EXIT ..." read vtInputKey } @@ -2309,14 +2334,15 @@ function img_common_menuentry { elif [ -f (vtimghd,2)/loader/entries/ubos.conf ]; then ventoy_img_ubos elif [ -f (vtimghd,2)/etc/openwrt_version ]; then - ventoy_img_openwrt - elif [ -f (vtimghd,1)/efi/boot/mt86.png ]; then - if [ "$grub_platform" = "pc" ]; then - img_unsupport_tip - else - ventoy_img_memtest86 - fi + ventoy_img_openwrt else + if [ -f (vtimghd,1)/efi/boot/mt86.png ]; then + if [ "$grub_platform" = "pc" ]; then + img_unsupport_tip + fi + fi + + #common chain vt_linux_chain_data "${vtoy_iso_part}${vt_chosen_path}" ventoy_acpi_param ${vtoy_chain_mem_addr} 512 if [ "$grub_platform" = "pc" ]; then @@ -2341,6 +2367,28 @@ function img_unsupport_menuentry { common_unsupport_menuentry } +function mimg_common_menuentry { + vt_chosen_img_path vt_chosen_path vt_chosen_size vt_chosen_name + + if vt_check_password "${vt_chosen_path}"; then + return + fi + + echo "memdisk mode boot for $vt_chosen_path" + echo "" + ventoy_debug_pause + + if [ "$grub_platform" = "pc" ]; then + legacy_img_memdisk $vtoy_iso_part "$vt_chosen_path" + else + vt_load_img_memdisk "$vtoy_iso_part$vt_chosen_path" vtoy_img_buf + ventoy_cli_console + chainloader ${vtoy_path}/ventoy_${VTOY_EFI_ARCH}.efi memdisk env_param=${env_param} isoefi=${LoadIsoEfiDriver} ${vtdebug_flag} mem:${vtoy_img_buf_addr}:size:${vtoy_img_buf_size} + boot + ventoy_gui_console + fi +} + ############################################################# ############################################################# ############################################################# @@ -2349,7 +2397,7 @@ function img_unsupport_menuentry { ############################################################# ############################################################# -set VENTOY_VERSION="1.0.83" +set VENTOY_VERSION="1.0.84" #ACPI not compatible with Window7/8, so disable by default set VTOY_PARAM_NO_ACPI=1 @@ -2373,6 +2421,7 @@ set VTOY_HELP_CMD="ventoy_show_help" set VTOY_CHKSUM_CMD="ventoy_checksum" set VTOY_HELP_TXT_LANGUAGE="en_US" set VTOY_CHKSUM_FILE_PATH="X" +set VTOY_LANG_CMD="ventoy_language" if [ "$grub_platform" = "pc" ]; then @@ -2450,6 +2499,11 @@ else vt_check_json_path_case $vtoy_iso_part fi +if [ -n "$VTOY_MENU_LANGUAGE" ]; then + vt_init_menu_lang "$VTOY_MENU_LANGUAGE" +else + vt_init_menu_lang en_US +fi if [ -n "$VTOY_MENU_TIMEOUT" ]; then set timeout=$VTOY_MENU_TIMEOUT @@ -2582,6 +2636,7 @@ export VTOY_HELP_CMD export VTOY_CHKSUM_CMD export VTOY_HELP_TXT_LANGUAGE export VTOY_CHKSUM_FILE_PATH +export VTOY_LANG_CMD #colect all image files (iso files)