1. Add a new feature to directly boot wim files

2. auto installation plugin update
    1) Expand the configuration, now you can specify more than one auto installation scripts for one ISO file
    2) Add a prompt for the iso with auto installation config, you can choose whether to use the auto installation script and which one to use for this time
3. persistence plugin update
    1) Expand the configuration, now you can specify more than one persistence backend image files for one ISO file
    2) Add a prompt for the iso with persistence config, you can choose whether to use the persistence image and which one to use for this time
4. Move the position of the red Memdisk tip to a more prominent position
5. Add a return parent directory item when in TreeView mode
6. Add a VTOY_DEFAULT_SEARCH_ROOT option in global control plugin to specify the root path of the iso files.
7. Change the style of F2 power menu
8. Fix a bug about Ventoy2Disk.exe can't start when there is a DataRAM Ramdisk in the system.
9. Files with size less than 32KB will be filted by default
10. Fix a bug about wrong file size in TreeView mode with NTFS/XFS
11. Files with space or Non Ascii charactors in name will be shown but with unsupported message when you boot it.
12. Optimization for Ventoy2Disk.sh
13. Optimization for arch linux boot
14. New iso support
This commit is contained in:
longpanda
2020-05-29 22:57:40 +08:00
parent 7a0b2d945e
commit c8e86938fe
33 changed files with 1258 additions and 487 deletions

View File

@@ -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
}