X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/blobdiff_plain/fe0dda690426b8e1b73c79b0dff46e1459ea40ec..84c500666addc8378fb03c3844bf6d25faf54a87:/INSTALL/grub/grub.cfg diff --git a/INSTALL/grub/grub.cfg b/INSTALL/grub/grub.cfg index da81008..763fed8 100644 --- a/INSTALL/grub/grub.cfg +++ b/INSTALL/grub/grub.cfg @@ -50,6 +50,21 @@ function get_os_type { fi } +function vt_check_pe { + unset VT_PE_SUPPORT + + if [ -f $1/HBCD_PE.ini ]; then + set ventoy_compatible=YES + set VT_PE_SUPPORT=YES + elif [ -f $1/easyu.flg ]; then + set VT_PE_SUPPORT=YES + elif [ -f $1/USM.ICO ]; then + set VT_PE_SUPPORT=YES + elif [ -d $1/USM_TOOL ]; then + set VT_PE_SUPPORT=YES + fi +} + function locate_initrd { vt_linux_locate_initrd @@ -62,7 +77,8 @@ function locate_initrd { function find_wim_file { unset ventoy_wim_file - for file in "sources/boot.wim" "sources/BOOT.WIM" "Sources/Win10PEx64.WIM" "boot/BOOT.WIM" "winpe_x64.wim"; do + for file in "sources/boot.wim" "sources/BOOT.WIM" "Sources/Win10PEx64.WIM" "boot/BOOT.WIM" \ + "winpe_x64.wim" "boot/10pex64.wim" "BOOT/USM1PE6L.WIM" "BOOT/USM1PE6F.WIM"; do if [ -e $1/$file ]; then set ventoy_wim_file=$1/$file break @@ -114,6 +130,8 @@ function distro_specify_initrd_file_phase2 { vt_linux_specify_initrd_file /isolinux/initramfs elif [ -f (loop)/boot/iniramfs.igz ]; then vt_linux_specify_initrd_file /boot/iniramfs.igz + elif [ -f (loop)/initrd-x86_64 ]; then + vt_linux_specify_initrd_file /initrd-x86_64 fi } @@ -248,10 +266,11 @@ function uefi_iso_menu_func { vt_img_sector ${1}${chosen_path} if [ "$vtoy_os" = "Windows" ]; then - if [ "$ventoy_fs_probe" = "iso9660" ]; then - set ventoy_compatible=YES - elif [ -f (loop)/HBCD_PE.ini ]; then - set ventoy_compatible=YES + vt_check_pe (loop) + if [ "$VT_PE_SUPPORT" != "YES" ]; then + if [ "$ventoy_fs_probe" = "iso9660" ]; then + set ventoy_compatible=YES + fi fi uefi_windows_menu_func $1 ${chosen_path} @@ -293,8 +312,7 @@ function legacy_windows_menu_func { fi if [ -n "$vtoy_chain_mem_addr" ]; then - linux16 $vtoy_path/ipxe.krn ${vtdebug_flag} ibft - initrd16 mem:${vtoy_chain_mem_addr}:size:${vtoy_chain_mem_size} + linux16 $vtoy_path/ipxe.krn ${vtdebug_flag} ibft mem:${vtoy_chain_mem_addr}:size:${vtoy_chain_mem_size} boot else echo "chain empty failed" @@ -349,9 +367,8 @@ function legacy_linux_menu_func { sleep 5 fi - if [ -n "$vtoy_chain_mem_addr" ]; then - linux16 $vtoy_path/ipxe.krn ${vtdebug_flag} - initrd16 mem:${vtoy_chain_mem_addr}:size:${vtoy_chain_mem_size} + if [ -n "$vtoy_chain_mem_addr" ]; then + linux16 $vtoy_path/ipxe.krn ${vtdebug_flag} mem:${vtoy_chain_mem_addr}:size:${vtoy_chain_mem_size} boot else echo "chain empty failed" @@ -389,10 +406,11 @@ function legacy_iso_menu_func { vt_img_sector ${1}${chosen_path} if [ "$vtoy_os" = "Windows" ]; then - if [ "$ventoy_fs_probe" = "iso9660" ]; then - set ventoy_compatible=YES - elif [ -f (loop)/HBCD_PE.ini ]; then - set ventoy_compatible=YES + vt_check_pe (loop) + if [ "$VT_PE_SUPPORT" != "YES" ]; then + if [ "$ventoy_fs_probe" = "iso9660" ]; then + set ventoy_compatible=YES + fi fi legacy_windows_menu_func $1 ${chosen_path} @@ -435,7 +453,7 @@ function common_menuentry { ############################################################# ############################################################# -set VENTOY_VERSION="1.0.09" +set VENTOY_VERSION="1.0.9Y" # Default menu display mode, you can change it as you want.