Commit 1cbe4c81 authored by longpanda's avatar longpanda
Browse files

1.0.14 release

parent 42990058
......@@ -18,8 +18,3 @@
#************************************************************************************
. $VTOY_PATH/hook/ventoy-os-lib.sh
$BUSYBOX_PATH/mkdir /dev
$BUSYBOX_PATH/mknode -m 0666 /dev/null c 1 3
$BUSYBOX_PATH/nohup $VTOY_PATH/hook/guix/ventoy-waitdev.sh &
......@@ -19,6 +19,8 @@
. /ventoy/hook/ventoy-hook-lib.sh
vtCheatLoop=loop6
ventoy_os_install_dmsetup() {
vtlog "ventoy_os_install_dmsetup $1"
......@@ -50,9 +52,9 @@ ventoy_os_install_dmsetup() {
if is_ventoy_hook_finished || not_ventoy_disk "${1:0:-1}"; then
# /dev/loop7 come first
if [ "$1" = "loop7" ] && [ -b $VTOY_DM_PATH ]; then
ventoy_copy_device_mapper /dev/loop7
# /dev/vtCheatLoop come first
if [ "$1" = "$vtCheatLoop" ] && [ -b $VTOY_DM_PATH ]; then
ventoy_copy_device_mapper /dev/$vtCheatLoop
fi
exit 0
fi
......@@ -72,14 +74,14 @@ $BUSYBOX_PATH/mount $VTOY_DM_PATH /mnt/ventoy
#
# We do a trick for rhel6 series here.
# Use /dev/loop7 and wapper it as a removable cdrom with bind mount.
# Then the anaconda installer will accept /dev/loop7 as the install medium.
# Use /dev/$vtCheatLoop and wapper it as a removable cdrom with bind mount.
# Then the anaconda installer will accept /dev/$vtCheatLoop as the install medium.
#
ventoy_copy_device_mapper /dev/loop7
ventoy_copy_device_mapper /dev/$vtCheatLoop
$BUSYBOX_PATH/cp -a /sys/devices/virtual/block/loop7 /tmp/ >> $VTLOG 2>&1
echo 19 > /tmp/loop7/capability
$BUSYBOX_PATH/mount --bind /tmp/loop7 /sys/block/loop7 >> $VTLOG 2>&1
$BUSYBOX_PATH/cp -a /sys/devices/virtual/block/$vtCheatLoop /tmp/ >> $VTLOG 2>&1
echo 19 > /tmp/$vtCheatLoop/capability
$BUSYBOX_PATH/mount --bind /tmp/$vtCheatLoop /sys/block/$vtCheatLoop >> $VTLOG 2>&1
# OK finish
set_ventoy_hook_finish
......@@ -23,4 +23,6 @@ $BUSYBOX_PATH/mkdir -p /etc/anaconda.repos.d /mnt/ventoy
ventoy_print_yum_repo "ventoy" "file:///mnt/ventoy" > /etc/anaconda.repos.d/ventoy.repo
ventoy_add_udev_rule "$VTOY_PATH/hook/rhel6/udev_disk_hook.sh %k"
ventoy_add_kernel_udev_rule "loop7" "$VTOY_PATH/hook/rhel6/udev_disk_hook.sh %k"
#loop7 was used by loader
ventoy_add_kernel_udev_rule "loop6" "$VTOY_PATH/hook/rhel6/udev_disk_hook.sh %k"
......@@ -192,6 +192,10 @@ ventoy_get_os_type() {
echo 'android'; return
fi
if $GREP -q 'adelielinux' /proc/version; then
echo 'adelie'; return
fi
echo "default"
}
......@@ -218,7 +222,6 @@ if [ "$VTOY_BREAK_LEVEL" = "03" ] || [ "$VTOY_BREAK_LEVEL" = "13" ]; then
exec $BUSYBOX_PATH/sh
fi
####################################################################
# #
# Step 4 : Hand over to real init #
......@@ -235,7 +238,8 @@ if [ -f $VTOY_PATH/ventoy_persistent_map ]; then
fi
cd /
unset VTOY_PATH VTLOG FIND GREP EGREP CAT AWK SED SLEEP HEAD
unset VTLOG FIND GREP EGREP CAT AWK SED SLEEP HEAD
for vtinit in $user_rdinit /init /sbin/init /linuxrc; do
if [ -d /ventoy_rdroot ]; then
......@@ -246,6 +250,9 @@ for vtinit in $user_rdinit /init /sbin/init /linuxrc; do
fi
else
if [ -e "$vtinit" ];then
if [ -f "$VTOY_PATH/hook/$VTOS/ventoy-before-init.sh" ]; then
$BUSYBOX_PATH/sh "$VTOY_PATH/hook/$VTOS/ventoy-before-init.sh"
fi
exec "$vtinit"
fi
fi
......
No preview for this file type
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
......
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 ...'
}
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 = "*"
}
......
......@@ -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"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment