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
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