X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/blobdiff_plain/260a3269b71db3e026ddbbcfddc884fbc3104d70..9eb334d99a1d2890fa7b17cf47250e94689d39ee:/INSTALL/grub/localboot.cfg diff --git a/INSTALL/grub/localboot.cfg b/INSTALL/grub/localboot.cfg index b60d54f..ff83416 100644 --- a/INSTALL/grub/localboot.cfg +++ b/INSTALL/grub/localboot.cfg @@ -1,10 +1,33 @@ if [ "$grub_platform" = "pc" ]; then - menuentry 'Search and boot Windows' --class=boot_windows { - if search -n -s -f /bootmgr; then - ntldr /bootmgr - elif search -n -s -f /NTLDR; then - ntldr /NTLDR + menuentry 'Search and boot Windows' --class=boot_windows { + + set partid=3 + while [ $partid -le 128 ]; do + if vt_check_part_exist $partid; then + for bt in bootmgr BOOTMGR Bootmgr BootMGR; do + if [ -f ($vtoydev,$partid)/$bt ]; then + set root=($vtoydev,$partid) + ntldr /$bt + boot + fi + done + else + break + fi + vt_incr partid 1 + done + + if search -n -s -f /Boot/BCD; then + for bt in bootmgr BOOTMGR Bootmgr BootMGR; do + if [ -f /$bt ]; then + ntldr /$bt + break + fi + done + elif search -n -s -f /NTDETECT.COM; then + drivemap -s hd0 $root + ntldr /ntldr else echo "Windows NOT found ..." fi @@ -39,6 +62,22 @@ if [ "$grub_platform" = "pc" ]; then else menuentry 'Search and boot Windows' --class=boot_windows { + + set partid=3 + while [ $partid -le 128 ]; do + if vt_check_part_exist $partid; then + if [ -f ($vtoydev,$partid)/EFI/Microsoft/Boot/bootmgfw.efi ]; then + set root=($vtoydev,$partid) + terminal_output console + chainloader /EFI/Microsoft/Boot/bootmgfw.efi + boot + fi + else + break + fi + vt_incr partid 1 + done + if search -n -s -f /EFI/Microsoft/Boot/bootmgfw.efi; then terminal_output console chainloader /EFI/Microsoft/Boot/bootmgfw.efi