mirror of
https://github.com/ventoy/Ventoy.git
synced 2025-08-28 08:21:14 +00:00
1.0.14 release
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -1,34 +1,34 @@
|
||||
submenu 'Check plugin json configuration (ventoy.json)' {
|
||||
submenu 'Check plugin json configuration (ventoy.json)' --class=debug_json {
|
||||
menuentry 'Check global control plugin configuration' {
|
||||
set pager=1
|
||||
vt_check_plugin_json $iso_path control $iso_path
|
||||
vt_check_plugin_json $vt_plugin_path control $iso_path
|
||||
|
||||
echo -e "\npress ENTER to exit ..."
|
||||
read vtInputKey
|
||||
unset pager
|
||||
}
|
||||
|
||||
menuentry 'Check theme plugin configuration' {
|
||||
menuentry 'Check theme plugin configuration' --class=debug_theme {
|
||||
set pager=1
|
||||
vt_check_plugin_json $iso_path theme $iso_path
|
||||
vt_check_plugin_json $vt_plugin_path theme $iso_path
|
||||
|
||||
echo -e "\npress ENTER to exit ..."
|
||||
read vtInputKey
|
||||
unset pager
|
||||
}
|
||||
|
||||
menuentry 'Check auto install plugin configuration' {
|
||||
menuentry 'Check auto install plugin configuration' --class=debug_autoinstall {
|
||||
set pager=1
|
||||
vt_check_plugin_json $iso_path auto_install $iso_path
|
||||
vt_check_plugin_json $vt_plugin_path auto_install $iso_path
|
||||
|
||||
echo -e "\npress ENTER to exit ..."
|
||||
read vtInputKey
|
||||
unset pager
|
||||
}
|
||||
|
||||
menuentry 'Check persistence plugin configuration' {
|
||||
menuentry 'Check persistence plugin configuration' --class=debug_persistence {
|
||||
set pager=1
|
||||
vt_check_plugin_json $iso_path persistence $iso_path
|
||||
vt_check_plugin_json $vt_plugin_path persistence $iso_path
|
||||
|
||||
echo -e "\n############### dump persistence ###############"
|
||||
vt_dump_persistence
|
||||
@@ -38,20 +38,29 @@ submenu 'Check plugin json configuration (ventoy.json)' {
|
||||
unset pager
|
||||
}
|
||||
|
||||
menuentry 'Check menu alias plugin configuration' {
|
||||
menuentry 'Check menu alias plugin configuration' --class=debug_menualias {
|
||||
set pager=1
|
||||
vt_check_plugin_json $iso_path menu_alias $iso_path
|
||||
vt_check_plugin_json $vt_plugin_path menu_alias $iso_path
|
||||
|
||||
echo -e "\npress ENTER to exit ..."
|
||||
read vtInputKey
|
||||
unset pager
|
||||
}
|
||||
|
||||
menuentry 'Return to previous menu [Esc]' VTOY_RET {
|
||||
menuentry 'Check menu class plugin configuration' --class=debug_menuclass {
|
||||
set pager=1
|
||||
vt_check_plugin_json $vt_plugin_path menu_class $iso_path
|
||||
|
||||
echo -e "\npress ENTER to exit ..."
|
||||
read vtInputKey
|
||||
unset pager
|
||||
}
|
||||
|
||||
menuentry 'Return to previous menu [Esc]' --class=vtoyret VTOY_RET {
|
||||
echo 'Return ...'
|
||||
}
|
||||
}
|
||||
|
||||
menuentry 'Return to previous menu [Esc]' VTOY_RET {
|
||||
menuentry 'Return to previous menu [Esc]' --class=vtoyret VTOY_RET {
|
||||
echo 'Return ...'
|
||||
}
|
||||
|
@@ -152,7 +152,9 @@ 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
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -337,6 +339,8 @@ function uefi_iso_memdisk {
|
||||
terminal_output 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
|
||||
|
||||
terminal_output gfxterm
|
||||
}
|
||||
|
||||
|
||||
@@ -502,12 +506,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
|
||||
@@ -521,6 +529,7 @@ function wim_common_menuentry {
|
||||
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}
|
||||
terminal_output gfxterm
|
||||
fi
|
||||
boot
|
||||
else
|
||||
@@ -530,9 +539,20 @@ 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
|
||||
|
||||
terminal_output console
|
||||
chainloader ${iso_path}${chosen_path}
|
||||
boot
|
||||
terminal_output gfxterm
|
||||
}
|
||||
|
||||
function efi_unsupport_menuentry {
|
||||
common_unsupport_menuentry
|
||||
}
|
||||
|
||||
#############################################################
|
||||
@@ -543,16 +563,13 @@ function wim_unsupport_menuentry {
|
||||
#############################################################
|
||||
#############################################################
|
||||
|
||||
set VENTOY_VERSION="1.0.13"
|
||||
set VENTOY_VERSION="1.0.14"
|
||||
|
||||
# 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 +596,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 +613,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 +622,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
|
||||
@@ -631,8 +662,6 @@ else
|
||||
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
|
||||
|
Binary file not shown.
BIN
INSTALL/grub/i386-pc/elf.mod
Normal file
BIN
INSTALL/grub/i386-pc/elf.mod
Normal file
Binary file not shown.
BIN
INSTALL/grub/i386-pc/file.mod
Normal file
BIN
INSTALL/grub/i386-pc/file.mod
Normal file
Binary file not shown.
BIN
INSTALL/grub/i386-pc/macho.mod
Normal file
BIN
INSTALL/grub/i386-pc/macho.mod
Normal file
Binary file not shown.
BIN
INSTALL/grub/i386-pc/offsetio.mod
Normal file
BIN
INSTALL/grub/i386-pc/offsetio.mod
Normal file
Binary file not shown.
BIN
INSTALL/grub/i386-pc/regexp.mod
Normal file
BIN
INSTALL/grub/i386-pc/regexp.mod
Normal file
Binary file not shown.
@@ -1,6 +1,6 @@
|
||||
|
||||
if [ "$grub_platform" = "pc" ]; then
|
||||
menuentry 'Search and boot Windows' {
|
||||
menuentry 'Search and boot Windows' --class=boot_windows {
|
||||
if search -n -s -f /bootmgr; then
|
||||
ntldr /bootmgr
|
||||
elif search -n -s -f /ntldr; then
|
||||
@@ -10,19 +10,27 @@ if [ "$grub_platform" = "pc" ]; then
|
||||
fi
|
||||
}
|
||||
|
||||
menuentry 'Boot the 1st local disk' {
|
||||
menuentry 'Search and boot Grub4dos' --class=boot_g4d {
|
||||
if search -n -s -f /grldr; then
|
||||
ntldr /grldr
|
||||
else
|
||||
echo "Grub4dos NOT found ..."
|
||||
fi
|
||||
}
|
||||
|
||||
menuentry 'Boot the 1st local disk' --class=boot_disk {
|
||||
set root=(hd0,1)
|
||||
chainloader +1
|
||||
boot
|
||||
}
|
||||
|
||||
menuentry 'Boot the 2nd local disk' {
|
||||
menuentry 'Boot the 2nd local disk' --class=boot_disk {
|
||||
set root=(hd1,1)
|
||||
chainloader +1
|
||||
boot
|
||||
}
|
||||
|
||||
menuentry 'Boot the 3rd local disk' {
|
||||
menuentry 'Boot the 3rd local disk' --class=boot_disk {
|
||||
set root=(hd2,1)
|
||||
chainloader +1
|
||||
boot
|
||||
@@ -30,7 +38,7 @@ if [ "$grub_platform" = "pc" ]; then
|
||||
|
||||
else
|
||||
|
||||
menuentry 'Search and boot Windows' {
|
||||
menuentry 'Search and boot Windows' --class=boot_windows {
|
||||
if search -n -s -f /EFI/Microsoft/Boot/bootmgfw.efi; then
|
||||
terminal_output console
|
||||
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
|
||||
@@ -40,7 +48,7 @@ else
|
||||
fi
|
||||
}
|
||||
|
||||
menuentry 'Search and boot BOOTX64.EFI' {
|
||||
menuentry 'Search and boot BOOTX64.EFI' --class=boot_uefi {
|
||||
if search -n -s -f /efi/boot/bootx64.efi; then
|
||||
terminal_output console
|
||||
chainloader /efi/boot/bootx64.efi
|
||||
@@ -52,6 +60,6 @@ else
|
||||
|
||||
fi
|
||||
|
||||
menuentry 'Return to menu [Esc]' VTOY_RET {
|
||||
menuentry 'Return to menu [Esc]' --class=vtoyret VTOY_RET {
|
||||
echo 'Return ...'
|
||||
}
|
||||
|
@@ -1,15 +1,15 @@
|
||||
menuentry Reboot {
|
||||
menuentry Reboot --class=power_reboot {
|
||||
echo -e '\n\nSystem is rebooting ... \n'
|
||||
sleep 1
|
||||
reboot
|
||||
}
|
||||
|
||||
menuentry Halt {
|
||||
menuentry Halt --class=power_halt {
|
||||
echo -e '\n\nSystem is halting ... \n'
|
||||
sleep 1
|
||||
halt
|
||||
}
|
||||
|
||||
menuentry 'Return to menu [Esc]' VTOY_RET {
|
||||
menuentry 'Return to menu [Esc]' --class=vtoyret VTOY_RET {
|
||||
echo 'Return ...'
|
||||
}
|
||||
|
@@ -34,12 +34,11 @@ terminal-box: "terminal_box_*.png"
|
||||
id = "__timeout__"
|
||||
text = "@TIMEOUT_NOTIFICATION_SHORT@"
|
||||
|
||||
left = 95%
|
||||
width = 48
|
||||
top = 95%
|
||||
height = 48
|
||||
left = 20%
|
||||
width = 60%
|
||||
top = 85%
|
||||
|
||||
text_color = "#f2f2f2"
|
||||
text_color = "red"
|
||||
bar_style = "*"
|
||||
highlight_style = "*"
|
||||
}
|
||||
|
Binary file not shown.
@@ -10,12 +10,13 @@ print_usage() {
|
||||
echo ' -I force install ventoy to sdX (no matter installed or not)'
|
||||
echo ''
|
||||
echo ' OPTION: (optional)'
|
||||
echo ' -s enable secure boot support (default is disabled)'
|
||||
echo ' -r SIZE_MB preserve some space at the bottom of the disk (only for install)'
|
||||
echo ' -s enable secure boot support (default is disabled)'
|
||||
echo ''
|
||||
|
||||
}
|
||||
|
||||
|
||||
RESERVE_SIZE_MB=0
|
||||
while [ -n "$1" ]; do
|
||||
if [ "$1" = "-i" ]; then
|
||||
MODE="install"
|
||||
@@ -26,6 +27,10 @@ while [ -n "$1" ]; do
|
||||
MODE="update"
|
||||
elif [ "$1" = "-s" ]; then
|
||||
SECUREBOOT="YES"
|
||||
elif [ "$1" = "-r" ]; then
|
||||
RESERVE_SPACE="YES"
|
||||
shift
|
||||
RESERVE_SIZE_MB=$1
|
||||
else
|
||||
if ! [ -b "$1" ]; then
|
||||
vterr "$1 is NOT a valid device"
|
||||
@@ -53,6 +58,15 @@ if [ -e /sys/class/block/${DISK#/dev/}/start ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -n "$RESERVE_SPACE" ]; then
|
||||
if echo $RESERVE_SIZE_MB | grep -q '^[0-9][0-9]*$'; then
|
||||
vtdebug "User will reserve $RESERVE_SIZE_MB MB disk space"
|
||||
else
|
||||
vterr "$RESERVE_SIZE_MB is invalid for reserved space"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if dd if="$DISK" of=/dev/null bs=1 count=1 >/dev/null 2>&1; then
|
||||
vtdebug "root permission check ok ..."
|
||||
else
|
||||
@@ -61,7 +75,7 @@ else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
vtdebug "MODE=$MODE FORCE=$FORCE"
|
||||
vtdebug "MODE=$MODE FORCE=$FORCE RESERVE_SPACE=$RESERVE_SPACE RESERVE_SIZE_MB=$RESERVE_SIZE_MB"
|
||||
|
||||
if ! check_tool_work_ok; then
|
||||
vterr "Some tools can not run in current system. Please check log.txt for detail."
|
||||
@@ -124,12 +138,28 @@ if [ "$MODE" = "install" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -n "$RESERVE_SPACE" ]; then
|
||||
sum_size_mb=$(expr $RESERVE_SIZE_MB + $VENTOY_PART_SIZE_MB)
|
||||
reserve_sector_num=$(expr $sum_size_mb \* 2048)
|
||||
|
||||
if [ $disk_sector_num -le $reserve_sector_num ]; then
|
||||
vterr "Can't reserve $RESERVE_SIZE_MB MB space from $DISK"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
#Print disk info
|
||||
echo "Disk : $DISK"
|
||||
parted -s $DISK p 2>&1 | grep Model
|
||||
echo "Size : $disk_size_gb GB"
|
||||
echo ''
|
||||
|
||||
if [ -n "$RESERVE_SPACE" ]; then
|
||||
echo "You will reserve $RESERVE_SIZE_MB MB disk space "
|
||||
fi
|
||||
echo ''
|
||||
|
||||
vtwarn "Attention:"
|
||||
vtwarn "You will install Ventoy to $DISK."
|
||||
vtwarn "All the data on the disk $DISK will be lost!!!"
|
||||
@@ -162,7 +192,7 @@ if [ "$MODE" = "install" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
format_ventoy_disk $DISK $PARTTOOL
|
||||
format_ventoy_disk $RESERVE_SIZE_MB $DISK $PARTTOOL
|
||||
|
||||
# format part1
|
||||
if ventoy_is_linux64; then
|
||||
@@ -278,8 +308,7 @@ else
|
||||
|
||||
./tool/xzcat ./boot/core.img.xz | dd status=none conv=fsync of=$DISK bs=512 count=2047 seek=1
|
||||
|
||||
disk_sector_num=$(cat /sys/block/${DISK#/dev/}/size)
|
||||
part2_start=$(expr $disk_sector_num - $VENTOY_SECTOR_NUM)
|
||||
part2_start=$(cat /sys/class/block/${PART2#/dev/}/start)
|
||||
./tool/xzcat ./ventoy/ventoy.disk.img.xz | dd status=none conv=fsync of=$DISK bs=512 count=$VENTOY_SECTOR_NUM seek=$part2_start
|
||||
|
||||
sync
|
||||
|
@@ -2,6 +2,7 @@
|
||||
|
||||
#Ventoy partition 32MB
|
||||
VENTOY_PART_SIZE=33554432
|
||||
VENTOY_PART_SIZE_MB=32
|
||||
VENTOY_SECTOR_SIZE=512
|
||||
VENTOY_SECTOR_NUM=65536
|
||||
|
||||
@@ -185,18 +186,28 @@ get_disk_ventoy_version() {
|
||||
}
|
||||
|
||||
format_ventoy_disk() {
|
||||
DISK=$1
|
||||
PARTTOOL=$2
|
||||
reserve_mb=$1
|
||||
DISK=$2
|
||||
PARTTOOL=$3
|
||||
|
||||
PART1=$(get_disk_part_name $DISK 1)
|
||||
PART2=$(get_disk_part_name $DISK 2)
|
||||
|
||||
sector_num=$(cat /sys/block/${DISK#/dev/}/size)
|
||||
|
||||
part1_start_sector=2048
|
||||
part1_end_sector=$(expr $sector_num - $VENTOY_SECTOR_NUM - 1)
|
||||
export part2_start_sector=$(expr $part1_end_sector + 1)
|
||||
part2_end_sector=$(expr $sector_num - 1)
|
||||
part1_start_sector=2048
|
||||
|
||||
if [ $reserve_mb -gt 0 ]; then
|
||||
reserve_sector_num=$(expr $reserve_mb \* 2048)
|
||||
part1_end_sector=$(expr $sector_num - $reserve_sector_num - $VENTOY_SECTOR_NUM - 1)
|
||||
else
|
||||
part1_end_sector=$(expr $sector_num - $VENTOY_SECTOR_NUM - 1)
|
||||
fi
|
||||
|
||||
part2_start_sector=$(expr $part1_end_sector + 1)
|
||||
part2_end_sector=$(expr $part2_start_sector + $VENTOY_SECTOR_NUM - 1)
|
||||
|
||||
export part2_start_sector
|
||||
|
||||
vtdebug "part1_start_sector=$part1_start_sector part1_end_sector=$part1_end_sector"
|
||||
vtdebug "part2_start_sector=$part2_start_sector part2_end_sector=$part2_end_sector"
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user