]> glassweightruler.freedombox.rocks Git - Ventoy.git/blobdiff - INSTALL/grub/localboot.cfg
1.0.21 release
[Ventoy.git] / INSTALL / grub / localboot.cfg
index b60d54fcb6b8188635c31c2b723639efa24a77f9..ff834169778ae81d4d52a4c6c6d926e31b23cbbf 100644 (file)
@@ -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