set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
#set gfxmode=auto
set gfxmode=1024x768
set gfxpayload=keep
set timeout=-1
set timeout_style=menu
set midx=x
set sidx=x
set wimbooton=n
set wimbootfiles=x
set hdd=hd1

#declar functie increment,nu pot injecta modul increment in grub semnat si cu secure boot
#folosesc menuindex si submenuindex ca hotkey si ma opresc la d daca apas e imi face edit ci nu lanseaza meniul,oricum pe 1024x786 nu vad mai mult de 14 linii
function mincrement {
    if [ x$midx == xx ]; then midx=1; elif [ x$midx == x1 ]; then midx=2; elif [ x$midx == x2 ]; then midx=3; elif [ x$midx == x3 ]; then midx=4; elif [ x$midx == x4 ]; then midx=5; elif [ x$midx == x5 ]; then midx=6; elif [ x$midx == x6 ]; then midx=7; elif [ x$midx == x7 ]; then midx=8; elif [ x$midx == x8 ]; then midx=9; elif [ x$midx == x9 ]; then midx=0; elif [ x$midx == x0 ]; then midx=a; elif [ x$midx == xa ]; then midx=b; elif [ x$midx == xb ]; then midx=c; elif [ x$midx == xc ]; then midx=d; else midx=x; fi
}

function sincrement {
    if [ x$sidx == xx ]; then sidx=1; elif [ x$sidx == x1 ]; then sidx=2; elif [ x$sidx == x2 ]; then sidx=3; elif [ x$sidx == x3 ]; then sidx=4; elif [ x$sidx == x4 ]; then sidx=5; elif [ x$sidx == x5 ]; then sidx=6; elif [ x$sidx == x6 ]; then sidx=7; elif [ x$sidx == x7 ]; then sidx=8; elif [ x$sidx == x8 ]; then sidx=9; elif [ x$sidx == x9 ]; then sidx=0; elif [ x$sidx == x0 ]; then sidx=a; elif [ x$sidx == xa ]; then sidx=b; elif [ x$sidx == xb ]; then sidx=c; elif [ x$sidx == xc ]; then sidx=d; else sidx=x; fi
}

#initial e incarcat grub2.06 fortez load grub2.11
if [ x$cmdpath == x($rootfat)/EFI/BOOT ]; then timeout=0; elif [ x$cmdpath == x($rootntfs)/EFI/BOOT ];  then timeout=0; else wimbooton=y;set grub_draw_border=1; fi

if [ x$wimbooton == xn ];then
    mincrement
    menuentry $midx.' Grub 2.11 are wimboot' --hotkey=$midx {      
        chainloader /boot/grub/211grubx64.efi
# sleep 1
    }
fi

if [ -d  "($rootntfs)/mint" ]; then
    mincrement
    submenu $midx.' Linux Mint >' --hotkey=$midx {
        sidx=x
        if [ -d  "($rootntfs)/mint/211" ]; then
            sincrement
            menuentry $sidx.' Linux Mint 21.1 Cinnamon 64-bit' --hotkey=$sidx {
                root=$rootntfs
                probe -u $root --set=devuuid
                echo UUID=$devuuid
                set gfxpayload=keep
                echo load kernel
                linux /mint/211/casper/vmlinuz  file=/cdrom/mint/211/preseed/linuxmint.seed boot=casper uuid=$devuuid live-media=/dev/disk/by-uuid/$devuuid live-media-path=/mint/211/casper net.ifnames=0 ro nopersistent --
                echo load initrd
                initrd /mint/211/casper/initrd.lz
            }
        fi
        if [ -d  "($rootntfs)/mint/202" ]; then
            sincrement
            menuentry $sidx.' Linux Mint 20.2 Cinnamon 64-bit' --hotkey=$sidx {
                root=$rootntfs
                probe -u $root --set=devuuid
                echo UUID=$devuuid
                set gfxpayload=keep
                echo load kernel
                linux /mint/202/casper/vmlinuz  file=/cdrom/mint/202/preseed/linuxmint.seed boot=casper uuid=$devuuid live-media=/dev/disk/by-uuid/$devuuid live-media-path=/mint/202/casper net.ifnames=0 ro nopersistent --
                echo load initrd
                initrd /mint/202/casper/initrd.lz
            }
        fi
        if [ -d  "($rootfat)/mint/193" ]; then
            sincrement
            menuentry $sidx'. Linux Mint 19.3 "Tricia" - Release i386' --hotkey=$sidx {
                root=$rootfat
                probe -u $root --set=devuuid
                echo UUID=$devuuid
                set gfxpayload=keep
                echo load kernel
                linux /mint/193/casper/vmlinuz  file=/cdrom/mint/193/preseed/linuxmint.seed boot=casper uuid=$devuuid live-media=/dev/disk/by-uuid/$devuuid live-media-path=/mint/193/casper net.ifnames=0 ro nopersistent --
                echo load initrd
                initrd /mint/193/casper/initrd.lz
            }
        fi
    }
fi
if [ -d  "($rootntfs)/ubuntu" ]; then
    mincrement
    submenu $midx.' Ubuntu >' --hotkey=$midx {
        sidx=x
        if [ -d  "($rootntfs)/ubuntu/2204" ]; then
            sincrement
            menuentry $sidx.' Ubuntu 22.04 LTS 64-bit' --hotkey=$sidx {
                root=$rootntfs
                probe -u $root --set=devuuid
                echo UUID=$devuuid
                set gfxpayload=keep
                echo load kernel
                linux /ubuntu/2204/casper/vmlinuz file=/cdrom/ubuntu/2204/preseed/ubuntu.seed boot=casper uuid=$devuuid live-media=/dev/disk/by-uuid/$devuuid live-media-path=/ubuntu/2204/casper net.ifnames=0 ro nopersistent --
                echo load initrd
                initrd /ubuntu/2204/casper/initrd
            }
        fi
        if [ -d  "($rootfat)/ubuntu/1606" ]; then
            sincrement
            menuentry $sidx'. Ubuntu 16.04.6 LTS "Xenial Xerus" - Release i386' --hotkey=$sidx {
                root=$rootfat
                probe -u $root --set=devuuid
                echo UUID=$devuuid
                set gfxpayload=keep
                echo load kernel
                linux /ubuntu/1606/casper/vmlinuz file=/cdrom/ubuntu/1606/preseed/ubuntu.seed boot=casper uuid=$devuuid live-media=/dev/disk/by-uuid/$devuuid live-media-path=/ubuntu/1606/casper net.ifnames=0 ro nopersistent --
                echo load initrd
                initrd /ubuntu/1606/casper/initrd
            }
        fi
    }
fi
if [ -d  "($rootntfs)/partedm" ]; then
    mincrement
    submenu $midx.' Parted Magic Linux >' --hotkey=$midx {
        sidx=x
        if [ -d  "($rootntfs)/partedm/2022" ]; then
            sincrement
            menuentry $sidx.' Parted Magic Linux 2022 kernel 5.16' --hotkey=$sidx {
                root=$rootntfs
                echo load kernel
                linux /partedm/2022/pmagic/bzImage boot=live eject=no directory=/partedm/2022
                echo load initrd
                initrd /partedm/2022/pmagic/initrd.img /partedm/2022/pmagic/fu.img /partedm/2022/pmagic/m.img
            }
        fi
        if [ -d  "($rootntfs)/partedm/2020" ]; then
            sincrement
            menuentry $sidx.' Parted Magic Linux 2020 kernel 5.8' --hotkey=$sidx {
                root=$rootntfs
                echo load kernel
                linux /partedm/2020/pmagic/bzImage boot=live eject=no directory=/partedm/2020
                echo load initrd
                initrd /partedm/2020/pmagic/initrd.img /partedm/2020/pmagic/fu.img /partedm/2020/pmagic/m.img
            }
        fi
        if [ -d  "($rootntfs)/partedm/2016" ]; then
            sincrement
            menuentry $sidx.' Parted Magic Linux 2016 x64' --hotkey=$sidx {
                root=$rootntfs
                echo load kernel
                linux /partedm/2016/pmagic/bzImage64 boot=live eject=no directory=/partedm/2016
                echo load initrd
                initrd /partedm/2016/pmagic/initrd.img /partedm/2016/pmagic/fu.img /partedm/2016/pmagic/m64.img
            }
        fi
    }
fi

if [ -d  "($rootntfs)/krd18" ]; then
    mincrement
    menuentry $midx.' Kaspersky Rescue Disk 2018, no video: CTRL+ALT+F1; startx, for update min. 1GB free on HDD' --hotkey=$midx {
        root=$rootntfs
        set extract_path="/krd18"
        set lang="en"
        if cpuid -l; then set _kernel="k-x86_64"; else set _kernel="k-x86"; fi
        echo load ${extract_path}/boot/grub/${_kernel}
        linux	${extract_path}/boot/grub/${_kernel} net.ifnames=0 lang=${lang} subdir=${extract_path}/data nodmraid nomdadm dostartx 
        echo load ${extract_path}/boot/grub/initrd.xz
        initrd	${extract_path}/boot/grub/initrd.xz
    }
fi
if [ -d  "($rootntfs)/kali" ]; then
    mincrement
    menuentry $midx.' Kali2022.3 64-bit' --hotkey=$midx {
        root=$rootntfs
        probe -u $root --set=devuuid
        echo load modules
        set gfxpayload=keep
        echo load kernel
        linux	($root)/kali/live/vmlinuz-5.18.0-kali5-amd64 boot=live components noeject uuid=$devuuid live-media=/dev/disk/by-uuid/$devuuid live-media-path=/kali/live
        echo load initrd
        initrd	($root)/kali/live/initrd.img-5.18.0-kali5-amd64
    }
fi
mincrement
menuentry $midx.' Boot from next volume' --hotkey=$midx {
    exit 1
}
mincrement
menuentry $midx.' UEFI Firmware Settings' --hotkey=$midx {
    fwsetup
}
if [ -f "($rootntfs)/EFI/memtest/BOOTX64.efi" ]; then
    mincrement
    menuentry $midx.' MemTest86 EFI' --hotkey=$midx {
        echo load memtest
        root=$rootntfs
        chainloader /EFI/memtest/BOOTX64.efi
    }
fi
if [ -f "($rootntfs)/EFI/boot/bootx64ms.efi" ]; then
    mincrement
    menuentry $midx.' Bootmgr for Windows tools from NTFS' --hotkey=$midx {
        echo load bootmgr
        root=$rootntfs
        chainloader /EFI/boot/bootx64ms.efi
    }
fi
if [ -f "($rootntfs)/boot/bcdefi" ]; then wimbootfiles=b$wimbootfiles; fi
if [ -f "($rootntfs)/boot/boot.sdi" ]; then wimbootfiles=s$wimbootfiles; fi
if [ x$wimbootfiles == xsbx ];then
    if [ x$wimbooton == xy ];then
    #    echo esti pe grub 2.11 si are modul wimboot
        mincrement
        submenu $midx'. Wimboot to load Windows from NTFS >' --hotkey=$midx {
            sidx=x
            if [ -f  "($rootntfs)/sources/boot.wim" ]; then
                sincrement
                menuentry $sidx.' HBCD_PE x64 ntboot' --hotkey=$sidx {
                    root=$rootntfs
                    ntboot -e /efi/boot/bootx64ms.efi -s /boot/boot.sdi -w /sources/boot.wim
                }
            fi
            if [ -f  "($rootntfs)/boot/winpe10x64.wim" ]; then
                sincrement
                menuentry $sidx'. Windows PE 10 x64' --hotkey=$sidx {
                    root=$rootntfs
                    wimboot \
                    @:"bcd":"/boot/bcdefi" \
                    @:"boot.sdi":"/boot/boot.sdi" \
                    @:"boot.wim":"/boot/winpe10x64.wim"
                    boot
                }
            fi
            if [ -f  "($rootntfs)/boot/dart10x64.wim" ]; then
                sincrement
                menuentry $sidx'. DaRT 10 on 21H2 x64' --hotkey=$sidx {
                    root=$rootntfs
                    wimboot \
                    @:"bcd":"/boot/bcdefi" \
                    @:"boot.sdi":"/boot/boot.sdi" \
                    @:"boot.wim":"/boot/dart10x64.wim"

                    if [ -s "($hdd)" ]; then drivemap -s hd0 $hdd ; fi
                    boot
                }
            fi
            if [ -d  "($rootntfs)/winx/22h2/sources" ]; then
                sincrement
                menuentry $sidx.' Windows 10 22H2 Setup' --hotkey=$sidx {
                    root=$rootntfs
                    wimboot \
                    @:"setup.bat":"/boot/setup22h2.bat" \
                    @:"winpeshl.ini":"/boot/winpeshl.ini" \
                    @:"bcd":"/boot/bcdefi" \
                    @:"boot.sdi":"/boot/boot.sdi" \
                    @:"boot.wim":"/boot/winpe10x64.wim"

                    if [ -s "($hdd)" ]; then drivemap -s hd0 $hdd ; fi
                    boot
                }
                sincrement
                menuentry $sidx.' Windows 10 22H2 boot si apoi repair' --hotkey=$sidx {
                    root=$rootntfs
                    wimboot \
                    @:"setup.bat":"/boot/repair.bat" \
                    @:"winpeshl.ini":"/boot/winpeshl.ini" \
                    @:"bcd":"/winx/22h2/efi/microsoft/boot/bcd" \
                    @:"boot.sdi":"/winx/22h2/boot/boot.sdi" \
                    @:"boot.wim":"/winx/22h2/sources/boot.wim"

                    if [ -s "($hdd)" ]; then drivemap -s hd0 $hdd ; fi
                    boot
                }
                sincrement
                menuentry $sidx.' Windows 10 22H2 boot cu ntboot' --hotkey=$sidx {
                    root=$rootntfs
                    ntboot -e /winx/22h2/efi/boot/bootx64.efi -s /winx/22h2/boot/boot.sdi -w /winx/22h2/sources/boot.wim
                }
            fi
            if [ -d  "($rootntfs)/winx/21h2/sources" ]; then
                sincrement
                menuentry $sidx.' Windows 10 21H2 Setup' --hotkey=$sidx {
                    root=$rootntfs
                    wimboot \
                    @:"setup.bat":"/boot/setup21h2.bat" \
                    @:"winpeshl.ini":"/boot/winpeshl.ini" \
                    @:"bcd":"/boot/bcdefi" \
                    @:"boot.sdi":"/boot/boot.sdi" \
                    @:"boot.wim":"/boot/winpe10x64.wim" 

                    if [ -s "($hdd)" ]; then drivemap -s hd0 $hdd ; fi
                    boot
                }
                sincrement
                menuentry $sidx.' Windows 10 21H2 boot si apoi repair' --hotkey=$sidx {
                    root=$rootntfs
                    wimboot \
                    @:"setup.bat":"/boot/repair.bat" \
                    @:"winpeshl.ini":"/boot/winpeshl.ini" \
                    @:"bcd":"/winx/21h2/efi/microsoft/boot/bcd" \
                    @:"boot.sdi":"/winx/21h2/boot/boot.sdi" \
                    @:"boot.wim":"/winx/21h2/sources/boot.wim"

                    if [ -s "($hdd)" ]; then drivemap -s hd0 $hdd ; fi
                    boot
                }
                sincrement
                menuentry $sidx.' Windows 10 21H2 boot cu ntboot' --hotkey=$sidx {
                    root=$rootntfs
                    ntboot -e /winx/21h2/efi/boot/bootx64.efi -s /winx/21h2/boot/boot.sdi -w /winx/21h2/sources/boot.wim
                }
            fi
            if [ -d  "($rootntfs)/win78x/x64/sources" ]; then
                sincrement
                menuentry $sidx.'Windows 78x Setup x64' --hotkey=$sidx {
                    root=$rootntfs
                    wimboot \
                    @:"setup.bat":"/boot/setupx64.bat" \
                    @:"winpeshl.ini":"/boot/winpeshl.ini" \
                    @:"bcd":"/boot/bcdefi" \
                    @:"boot.sdi":"/boot/boot.sdi" \
                    @:"boot.wim":"/boot/winpe10x64.wim" 

                    if [ -s "($hdd)" ]; then drivemap -s hd0 $hdd ; fi
                    boot
                }
                sincrement
                menuentry $sidx.'Windows 78x x64 boot si apoi repair' --hotkey=$sidx {
                    root=$rootntfs
                    wimboot \
                    @:"setup.bat":"/boot/repair.bat" \
                    @:"winpeshl.ini":"/boot/winpeshl.ini" \
                    @:"bcd":"/win78x/x64/efi/microsoft/boot/bcd" \
                    @:"boot.sdi":"/win78x/x64/boot/boot.sdi" \
                    @:"boot.wim":"/win78x/x64/sources/boot.wim"

                    if [ -s "($hdd)" ]; then drivemap -s hd0 $hdd ; fi
                    boot
                }
                sincrement
                menuentry $sidx.'Windows 78x boot si apoi repai cu ntboot' --hotkey=$sidx {
                    root=$rootntfs
                    ntboot -e /win78x/x64/efi/boot/bootx64.efi -s /win78x/x64/boot/boot.sdi -w /win78x/x64/sources/boot.wim
                }
            fi
        }
    fi
fi
if [ -d  "($rootkrd)/data" ]; then
    mincrement
    menuentry $midx'.Kaspersky Rescue Disk 2018,novideo:CTRL+ALT+F1->startx,for update min.1GB free on HDD' --hotkey=$midx {
        root=$rootkrd
        set extract_path=""
        set lang="en"
        set _kernel="k-x86_64"
        echo load ${extract_path}/boot/grub/${_kernel}
        linux	${extract_path}/boot/grub/${_kernel} net.ifnames=0 lang=${lang} subdir=${extract_path}/data nodmraid nomdadm dostartx 
        echo load ${extract_path}/boot/grub/initrd.xz
        initrd	${extract_path}/boot/grub/initrd.xz
    }
fi