X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/blobdiff_plain/a1c6fe2d2428cb8a1b4a9e11a9a5075a4bccecd1..b4a059dd6896b4df24ef23e826366536bb030337:/INSTALL/grub/grub.cfg diff --git a/INSTALL/grub/grub.cfg b/INSTALL/grub/grub.cfg index 1107c78..9857b6b 100644 --- a/INSTALL/grub/grub.cfg +++ b/INSTALL/grub/grub.cfg @@ -257,6 +257,10 @@ function distro_specify_initrd_file { vt_linux_specify_initrd_file /isolinux/initrd.gz fi + if vt_str_begin "$vt_volume_id" "QUBES"; then + vt_linux_specify_initrd_file /images/pxeboot/initrd.img + fi + if [ "$vt_chosen_size" = "1133375488" ]; then if [ -d (loop)/boot/grub/x86_64-efi ]; then vt_cpio_busybox64 "64h" @@ -496,6 +500,8 @@ function ventoy_freebsd_proc { 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 + elif [ -e (loop)/boot/kernel/kernel.gz ]; then + vt_unix_parse_freebsd_ver_elf (loop)/boot/kernel/kernel.gz $vt_freebsd_bit vt_freebsd_ver fi if [ "$vt_freebsd_ver" = "xx" ]; then @@ -515,8 +521,17 @@ function ventoy_freebsd_proc { fi done - vt_unix_replace_ko $vt_unix_mod_path (vtunix)/ventoy_unix/$vtFreeBsdDistro/geom_ventoy_ko/$vt_freebsd_ver/$vt_freebsd_bit/geom_ventoy.ko.xz - vt_unix_replace_conf FreeBSD "${1}${chosen_path}" + if [ -n "$vt_unix_mod_path" ]; then + vt_unix_replace_ko $vt_unix_mod_path (vtunix)/ventoy_unix/$vtFreeBsdDistro/geom_ventoy_ko/$vt_freebsd_ver/$vt_freebsd_bit/geom_ventoy.ko.xz + vt_unix_replace_conf FreeBSD "${1}${chosen_path}" + elif [ -e (loop)/easyre.ufs.uzip ]; then + vt_unix_replace_ko "/boot/grub/i386-pc/linux.mod" (vtunix)/ventoy_unix/$vtFreeBsdDistro/geom_ventoy_ko/$vt_freebsd_ver/$vt_freebsd_bit/geom_ventoy.ko.xz + if [ "$grub_platform" = "pc" ]; then + vt_unix_replace_grub_conf "/boot/grub/i386-pc/linux.mod" "cd9" + else + vt_unix_replace_conf FreeBSD "${1}${chosen_path}" "cd9" + fi + fi } function ventoy_dragonfly_proc { @@ -538,6 +553,8 @@ function ventoy_dragonfly_proc { function ventoy_unix_comm_proc { vt_unix_reset + vt_unix_check_vlnk "${1}${chosen_path}" + if [ "$ventoy_compatible" = "NO" ]; then loopback vtunix $vtoy_efi_part/ventoy/ventoy_unix.cpio @@ -742,7 +759,16 @@ function uefi_linux_menu_func { ventoy_acpi_param ${vtoy_chain_mem_addr} 2048 ventoy_cli_console + unset vtGrub2Mode if vt_check_mode 3; then + set vtGrub2Mode=1 + elif vt_str_begin "$vt_volume_id" "KRD"; then + if [ -f (loop)/boot/grub/grub.cfg.sig ]; then + set vtGrub2Mode=1 + fi + fi + + if [ -n "$vtGrub2Mode" ]; then ventoy_debug_pause else if [ "$VTOY_EFI_ARCH" != "mips" ]; then @@ -1290,14 +1316,32 @@ function iso_common_menuentry { set vtcompat=1 fi + + # auto memdisk mode for some special ISO files + vt_iso_vd_id_parse "${vtoy_iso_part}${vt_chosen_path}" + unset vtMemDiskBoot + if vt_check_mode 0; then + set vtMemDiskBoot=1 + else + if [ "$grub_platform" = "pc" ]; then + if vt_iso_vd_id_begin 1 0 "Memtest86+"; then + set vtMemDiskBoot=1 + elif vt_iso_vd_id_begin 0 1 "KolibriOS"; then + set vtMemDiskBoot=1 + fi + fi + fi + vt_iso_vd_id_clear + + if [ "$grub_platform" = "pc" ]; then - if vt_check_mode 0; then + if [ -n "$vtMemDiskBoot" ]; then legacy_iso_memdisk $vtoy_iso_part "$vt_chosen_path" else legacy_iso_menu_func $vtoy_iso_part "$vt_chosen_path" fi else - if vt_check_mode 0; then + if [ -n "$vtMemDiskBoot" ]; then uefi_iso_memdisk $vtoy_iso_part "$vt_chosen_path" else uefi_iso_menu_func $vtoy_iso_part "$vt_chosen_path" @@ -2069,7 +2113,7 @@ function img_unsupport_menuentry { ############################################################# ############################################################# -set VENTOY_VERSION="1.0.67" +set VENTOY_VERSION="1.0.73" #ACPI not compatible with Window7/8, so disable by default set VTOY_PARAM_NO_ACPI=1 @@ -2223,6 +2267,11 @@ else terminal_output gfxterm fi +if [ "$grub_platform" = "efi" ]; then + set mouse_delta=4000 + # terminal_input --append mouse +fi + if [ -n "$VTOY_DEFAULT_KBD_LAYOUT" ]; then set_keyboard_layout "$VTOY_DEFAULT_KBD_LAYOUT" fi @@ -2292,6 +2341,32 @@ export VTOY_HELP_TXT_LANGUAGE export VTOY_CHKSUM_FILE_PATH +#colect all image files (iso files) +set ventoy_img_count=0 +vt_list_img $vtoy_iso_part ventoy_img_count + +#Main menu +if [ $ventoy_img_count -gt 0 ]; then + if [ $VTOY_DEFAULT_MENU_MODE -eq 0 ]; then + vt_dynamic_menu 0 0 + else + vt_dynamic_menu 0 1 + fi +else + if [ -n "$VTOY_NO_ISO_TIP" ]; then + NO_ISO_MENU="No ISO or supported IMG files found, $VTOY_NO_ISO_TIP" + elif [ -n "$VTOY_DEFAULT_SEARCH_ROOT" ]; then + NO_ISO_MENU="No ISO or supported IMG files found, please check VTOY_DEFAULT_SEARCH_ROOT" + else + NO_ISO_MENU="No ISO or supported IMG files found" + fi + menuentry "$NO_ISO_MENU (Press enter to reboot ...)" { + echo -e "\n Rebooting ... " + reboot + } +fi + + #special VTOY_DEFAULT_IMAGE process if [ -n "$VTOY_DEFAULT_IMAGE" ]; then if regexp --set 1:vtHotkey --set 2:vtDefault "(F[2-9])>(.*)" "$VTOY_DEFAULT_IMAGE"; then @@ -2305,8 +2380,13 @@ if [ -n "$VTOY_DEFAULT_IMAGE" ]; then export timeout export default - - if [ "$vtHotkey" = "F4" ]; then + + vt_fn_mutex_lock 1 + + if [ "$vtHotkey" = "F2" ]; then + unset timeout + vt_browser_disk + elif [ "$vtHotkey" = "F4" ]; then ventoy_localboot elif [ "$vtHotkey" = "F5" ]; then ventoy_diagnosis @@ -2314,32 +2394,10 @@ if [ -n "$VTOY_DEFAULT_IMAGE" ]; then ventoy_ext_menu fi + vt_fn_mutex_lock 0 + unset timeout unset default fi fi -#colect all image files (iso files) -set ventoy_img_count=0 -vt_list_img $vtoy_iso_part ventoy_img_count - -#Main menu -if [ $ventoy_img_count -gt 0 ]; then - if [ $VTOY_DEFAULT_MENU_MODE -eq 0 ]; then - vt_dynamic_menu 0 0 - else - vt_dynamic_menu 0 1 - fi -else - 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 - } -fi