}
function ventoy_get_ghostbsd_ver {
-
- # vt_parse_iso_create_date "$1/${chosen_path}" vt_create_date
- # if regexp "^202005" "$vt_create_date"; then
- # set vt_freebsd_ver=12.x
- # fi
-
- set vt_freebsd_ver=12.x
+ # fallback to parse version from elf /boot/kernel/kernel
+ set vt_freebsd_ver=xx
}
function ventoy_get_furybsd_ver {
function ventoy_freebsd_proc {
set vtFreeBsdDistro=FreeBSD
+ set vt_freebsd_ver=xx
if vt_strstr "$vt_volume_id" "GHOSTBSD"; then
ventoy_get_ghostbsd_ver "$1" "${chosen_path}"
fi
elif vt_strstr "${chosen_path}" "MidnightBSD"; then
set vt_freebsd_ver=9.x
- else
- set vt_freebsd_ver=12.x
fi
set vt_freebsd_bit=64
fi
break
fi
- done
+ done
+
+ if [ "$vt_freebsd_ver" = "xx" ]; then
+ if [ -e (loop)/boot/kernel/kernel ]; then
+ vt_unix_parse_freebsd_ver_elf (loop)/boot/kernel/kernel $vt_freebsd_bit vt_freebsd_ver
+ fi
+
+ if [ "$vt_freebsd_ver" = "xx" ]; then
+ set vt_freebsd_ver=13.x
+ fi
+ fi
if [ -n "${vtdebug_flag}" ]; then
echo "This is FreeBSD $vt_freebsd_ver ${vt_freebsd_bit}bit"
ventoy_debug_pause
if [ -n "$vtoy_chain_mem_addr" ]; then
- ventoy_acpi_param ${vtoy_chain_mem_addr} 2048
- linux16 $vtoy_path/ipxe.krn ${vtdebug_flag} mem:${vtoy_chain_mem_addr}:size:${vtoy_chain_mem_size}
- boot
+ if vt_check_mode 3; then
+ ventoy_acpi_param ${vtoy_chain_mem_addr} 2048
+ ventoy_cli_console
+
+ # fallback
+ set vtback_root=$root
+ vt_push_last_entry
+ set vtback_theme=$theme
+ unset theme
+
+ vt_trailer_cpio "$vtoy_iso_part" "$vt_chosen_path" noinit
+ vt_set_boot_opt rdinit=/vtoy/vtoy
+
+ set root=(loop)
+ set vtback_cfg_find=0
+ for cfg in "/boot/grub/grub.cfg" "/EFI/BOOT/grub.cfg" "/EFI/debian/grub.cfg" "EFI/boot/grub.cfg" "efi/boot/grub.cfg" "/grub/grub.cfg" "EFI/BOOT/BOOTX64.conf"; do
+ if [ -e "$cfg" ]; then
+ set vtback_cfg_find=1
+ configfile "$cfg"
+ break
+ fi
+ done
+
+ vt_unset_boot_opt
+ set root=$vtback_root
+ set theme=$vtback_theme
+ vt_pop_last_entry
+ ventoy_gui_console
+ else
+ ventoy_acpi_param ${vtoy_chain_mem_addr} 2048
+ linux16 $vtoy_path/ipxe.krn ${vtdebug_flag} mem:${vtoy_chain_mem_addr}:size:${vtoy_chain_mem_size}
+ boot
+ fi
else
echo "chain empty failed"
ventoy_pause
#############################################################
#############################################################
-set VENTOY_VERSION="1.0.39"
+set VENTOY_VERSION="1.0.40"
#ACPI not compatible with Window7/8, so disable by default
set VTOY_PARAM_NO_ACPI=1
export vtoydev
export vtoy_path
export vtdebug_flag
+export vtoy_iso_fs
export vtoy_iso_part
export vtoy_efi_part
export VENTOY_VERSION