set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
set grub_draw_border=1
set gfxmode=auto
set midx=x
set sidx=x
set wimbootfiles=x
set hdd=hd1

#declar functie increment
#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
}

mincrement
menuentry $midx'. HBCD152 syslinux Menu' --hotkey=$midx {
    root=$rootfat
    chainloader +1
}

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

if [ -f "($rootfat)/boot/memtest86+.bin" ]; then
    mincrement
    menuentry $midx'. Memtest86+ ' --hotkey=$midx {
        linux16 ($rootfat)/boot/memtest86+.bin
    }
fi
if [ -f "($rootfat)/boot/hdt-052.img" ]; then
    mincrement
    menuentry $midx'. Hardware Detection Tool (HDT) version 0.5.2 (Manon) img memdisk' --hotkey=$midx {
        linux16 ($rootfat)/boot/memdisk raw
        initrd16 ($rootfat)/boot/hdt-052.img
    }
fi
mincrement
menuentry $midx'. HBCD Programs Dos Boot Menu memdisk' --hotkey=$midx {
        linux16 ($rootfat)/boot/memdisk
        initrd16 ($rootfat)/HBCD/Dos/dos.gz
}
if [ -f "($rootfat)/bootmgr" ]; then
    wimbootfiles=m$wimbootfiles
    mincrement
    menuentry $midx'. Bootmgr from HBCD152 for MiniWindows7' --hotkey=$midx {
        root=$rootfat
        ntldr /bootmgr
    }
fi
if [ -f "($rootfat)/boot/bcdexe" ]; then wimbootfiles=b$wimbootfiles; fi
if [ -f "($rootfat)/boot/boot.sdi" ]; then wimbootfiles=s$wimbootfiles; fi
if [ -f "($rootfat)/boot/wimboot" ]; then wimbootfiles=k$wimbootfiles; fi
if [ x$wimbootfiles == xksbmx ];then
    mincrement
    submenu $midx'. Wimboot to load Windows from HBCD152 >' --hotkey=$midx {
        sidx=x
        if [ -d  "($rootfat)/HBCD/7" ]; then
            sincrement
            menuentry $sidx'. MiniWindows 7 HBCD' --hotkey=$sidx {
                root=$rootfat
                echo load wimboot
                linux16 /boot/wimboot
                echo load images of bcd,boot.sdi,7.wim from HBCD
                initrd16 \
                    newc:boot.sdi:/HBCD/7/7D \
                    newc:BCD:/boot/bcdexe \
                    newc:bootmgr:/bootmgr \
                    newc:boot.wim:/HBCD/7/7.wim
            }
        fi
        if [ -f  "($rootfat)/boot/winpe7x86.wim" ]; then
            sincrement
            menuentry $sidx'. WindowsPE 7 x86' --hotkey=$sidx {
                root=$rootfat
                echo load wimboot
                linux16 /boot/wimboot
                echo load images of bcd,boot.sdi,winpe7x86 form boot
                initrd16 \
                    newc:boot.sdi:/boot/boot.sdi \
                    newc:BCD:/boot/bcdexe \
                    newc:boot.wim:/boot/winpe7x86.wim
            }
        fi
        if [ -f  "($rootfat)/boot/dart7x86.wim" ]; then
            sincrement
            menuentry $sidx'. DaRT 7 x86' --hotkey=$sidx {
                root=$rootfat
                echo load wimboot
                linux16 /boot/wimboot
                echo load images of bcd,boot.sdi,dart7x86 form boot
                initrd16 \
                    newc:boot.sdi:/boot/boot.sdi \
                    newc:BCD:/boot/bcdexe \
                    newc:boot.wim:/boot/dart7x86.wim

                if [ -s "($hdd)" ]; then drivemap -s hd0 $hdd ; fi
            }
        fi
        if [ -f  "($rootfat)/win7x86/sources/setup.exe" ]; then
            sincrement
            menuentry $sidx'. Windows 7 Setup x86 from win7x86' --hotkey=$sidx {
                root=$rootfat
                echo load wimboot
                linux16 /boot/wimboot
                echo load images of bcdexe,boot.sdi,winpe7x86.wim from boot folder and start setup from win7x86
                initrd16 \
                    newc:setup.bat:/boot/setup7x86.bat \
                    newc:winpeshl.ini:/boot/winpeshl.ini \
                    newc:boot.sdi:/boot/boot.sdi \
                    newc:BCD:/boot/bcdexe \
                    newc:boot.wim:/boot/winpe7x86.wim

                if [ -s "($hdd)" ]; then drivemap -s hd0 $hdd ; fi
            }
        fi
    }
fi
wimbootfiles=x
if [ -f "($rootntfs)/BOOTMGR" ]; then
    wimbootfiles=m$wimbootfiles
    mincrement
    menuentry $midx'. Bootmgr from NTFS for Windows tools' --hotkey=$midx {
        root=$rootntfs
        ntldr /BOOTMGR
    }
fi
if [ -f "($rootntfs)/boot/bcdexe" ]; then wimbootfiles=b$wimbootfiles; fi
if [ -f "($rootntfs)/boot/boot.sdi" ]; then wimbootfiles=s$wimbootfiles; fi
if [ -f "($rootntfs)/boot/wimboot" ]; then wimbootfiles=k$wimbootfiles; fi
if [ x$wimbootfiles == xksbmx ];then
    mincrement
    submenu $midx'. Wimboot to load Windows from NTFS >' --hotkey=$midx {
        sidx=x
        if [ -f  "($rootntfs)/boot/winpe10x64.wim" ]; then
            sincrement
            menuentry $sidx'. WindowsPE 10 x64 20H2' --hotkey=$sidx {
                root=$rootntfs
                echo load wimboot
                linux16 /boot/wimboot
                echo load images of bcd,boot.sdi,winpe10x64 form boot
                initrd16 \
                    newc:boot.sdi:/boot/boot.sdi \
                    newc:BCD:/boot/bcdexe \
                    newc:boot.wim:/boot/winpe10x64.wim
            }
        fi
        if [ -f  "($rootntfs)/boot/dart10x64.wim" ]; then
            sincrement
            menuentry $sidx'. DaRT 10 x64' --hotkey=$sidx {
                root=$rootntfs
                echo load wimboot 
                linux16 /boot/wimboot
                echo load images of bcd,boot.sdi,dart10x64 form boot
                initrd16 \
                    newc:boot.sdi:/boot/boot.sdi \
                    newc:BCD:/boot/bcdexe \
                    newc:boot.wim:/boot/dart10x64.wim

                if [ -s "($hdd)" ]; then drivemap -s hd0 $hdd ; fi
            }
        fi
        if [ -d  "($rootntfs)/winx/22h2/sources" ]; then
            if [ -f  "($rootntfs)/boot/winpe10x64.wim" ]; then
                sincrement
                menuentry $sidx'. Windows 10 22H2 Setup with winpe10x64.wim from winx/22h2' --hotkey=$sidx {
                    root=$rootntfs
                    echo load wimboot
                    linux16 /boot/wimboot
                    echo load images of bcdexe,boot.sdi,winpe10x64.wim from boot and start setup from winx/22h2
                    initrd16 \
                        newc:setup.bat:/boot/setup22h2.bat \
                        newc:winpeshl.ini:/boot/winpeshl.ini \
                        newc:boot.sdi:/boot/boot.sdi \
                        newc:BCD:/boot/bcdexe \
                        newc:boot.wim:/boot/winpe10x64.wim

                    if [ -s "($hdd)" ]; then drivemap -s hd0 $hdd ; fi
                }
            fi
            sincrement
            menuentry $sidx'. Windows 10 22H2 Boot from winx/22h2 and choose Repair' --hotkey=$sidx {
                root=$rootntfs
                echo load wimboot
                linux16 /boot/wimboot
                echo load images of bcd,boot.sdi,boot.wim from winx/22h2
                initrd16 \
                    newc:setup.bat:/boot/repair.bat \
                    newc:winpeshl.ini:/boot/winpeshl.ini \
                    newc:boot.sdi:/winx/22h2/boot/boot.sdi \
                    newc:BCD:/winx/22h2/boot/bcd \
                    newc:boot.wim:/winx/22h2/sources/boot.wim

                if [ -s "($hdd)" ]; then drivemap -s hd0 $hdd ; fi
            }
        fi
        if [ -d  "($rootntfs)/winx/21h2/sources" ]; then
            if [ -f  "($rootntfs)/boot/winpe10x64.wim" ]; then
                sincrement
                menuentry $sidx'. Windows 10 21H2 Setup with winpe10x64.wim from winx/21h2' --hotkey=$sidx {
                    root=$rootntfs
                    echo load wimboot
                    linux16 /boot/wimboot
                    echo load images of bcdexe,boot.sdi,winpe10x64.wim from boot and start setup from winx/21h2
                    initrd16 \
                        newc:setup.bat:/boot/setup21h2.bat \
                        newc:winpeshl.ini:/boot/winpeshl.ini \
                        newc:boot.sdi:/boot/boot.sdi \
                        newc:BCD:/boot/bcdexe \
                        newc:boot.wim:/boot/winpe10x64.wim

                    if [ -s "($hdd)" ]; then drivemap -s hd0 $hdd ; fi
                }
            fi
            sincrement
            menuentry $sidx'. Windows 10 21H2 Boot from winx/21h2 and choose Repair' --hotkey=$sidx {
                root=$rootntfs
                echo load wimboot
                linux16 /boot/wimboot index=2
                echo load images of bcd,boot.sdi,boot.wim from winx/21h2
                initrd16 \
                    newc:setup.bat:/boot/repair.bat \
                    newc:winpeshl.ini:/boot/winpeshl.ini \
                    newc:boot.sdi:/winx/21h2/boot/boot.sdi \
                    newc:BCD:/winx/21h2/boot/bcd \
                    newc:boot.wim:/winx/21h2/sources/boot.wim

                if [ -s "($hdd)" ]; then drivemap -s hd0 $hdd ; fi
            }
        fi
        if [ -d  "($rootntfs)/win78x/x64/sources" ]; then
            sincrement
            menuentry $sidx'. Windows 7810 Setup x64' --hotkey=$sidx {
                root=$rootntfs
                echo load wimboot
                linux16 /boot/wimboot
                echo load images of bcdexe,boot.sdi,winpe10x64.wim from boot and start setup from win78x/x64
                initrd16 \
                    newc:setup.bat:/boot/setupx64.bat \
                    newc:winpeshl.ini:/boot/winpeshl.ini \
                    newc:boot.sdi:/boot/boot.sdi \
                    newc:BCD:/boot/bcdexe \
                    newc:boot.wim:/boot/winpe10x64.wim

                if [ -s "($hdd)" ]; then drivemap -s hd0 $hdd ; fi
            }
        fi
        if [ -f  "($rootntfs)/boot/winpe10x86.wim" ]; then
            sincrement
            menuentry $sidx'. WindowsPE 10 x86 20H2' --hotkey=$sidx {
                root=$rootntfs
                echo load wimboot
                linux16 /boot/wimboot
                echo load images of bcd,boot.sdi,winpe10x86 form boot
                initrd16 \
                    newc:boot.sdi:/boot/boot.sdi \
                    newc:BCD:/boot/bcdexe \
                    newc:boot.wim:/boot/winpe10x86.wim
            }
        fi
        if [ -f  "($rootntfs)/boot/dart10x86.wim" ]; then
            sincrement
            menuentry $sidx'. DaRT 10 x86' --hotkey=$sidx {
                root=$rootntfs
                echo load wimboot
                linux16 /boot/wimboot
                echo load images of bcd,boot.sdi,dart10x86 form boot
                initrd16 \
                    newc:boot.sdi:/boot/boot.sdi \
                    newc:BCD:/boot/bcdexe \
                    newc:boot.wim:/boot/dart10x86.wim

                if [ -s "($hdd)" ]; then drivemap -s hd0 $hdd ; fi
            }
        fi
        if [ -d  "($rootntfs)/win78x/x86/sources" ]; then
            sincrement
            menuentry $sidx'. Windows 7810 Setup x86' --hotkey=$sidx {
                root=$rootntfs
                echo load wimboot
                linux16 /boot/wimboot
                echo load images of bcdexe,boot.sdi,winpe10x86.wim from boot folder and start setup from win78x/x86
                initrd16 \
                    newc:setup.bat:/boot/setupx86.bat \
                    newc:winpeshl.ini:/boot/winpeshl.ini \
                    newc:boot.sdi:/boot/boot.sdi \
                    newc:BCD:/boot/bcdexe \
                    newc:boot.wim:/boot/winpe10x86.wim

                if [ -s "($hdd)" ]; then drivemap -s hd0 $hdd ; fi
            }
        fi
    }
fi
if [ -d  "($rootfat)/HBCD/Boot/pmagic" ]; then
    mincrement
    menuentry $midx'. Parted Magic Linux 2012' --hotkey=$midx {
        root=$rootfat
        echo load kernel
        linux /HBCD/Boot/pmagic/bzImage edd=off load_ramdisk=1 prompt_ramdisk=0 rw loglevel=9 max_loop=256 vmalloc=256MiB directory=/HBCD/Boot
        echo load initrd
        initrd /HBCD/Boot/pmagic/initrd.img
        echo done,boot
    }
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"
        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