/etc/grub.d/40_custom file

Grub2 allows to add custom entries. An example Windows on partition /dev/sda1

sudo nano /etc/grub.d/40_custom

.. the contents

menuentry “Windows ” {
set root='(hd0,1)’
chainloader +1

… save and quit
Ctrl o
Ctrl x
… update grub

sudo update-grub


Menuentry for UEFI Windows where Windows boot files are on GPT partition 2 to the /EFI/Microsoft.orig/Boot folder

menuentry ‘Windows 10′ {
insmod part_gpt
insmod fat
set root=’hd0,gpt2’

chainloader /EFI/Microsoft.orig/Boot/bootmgfw.efi


Grub4Dos menuentry for /dev/sda1 fat32

menuentry “grub4dos ” {
insmod fat
set root='(hd0,1)’
linux /grub.exe –config-file=/menu.lst


Read also:
To chainload Grub2 via Grub4Dos

To get Windows boot using Grub4Dos