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
}
reactOS menuentry for /dev/sda1
menuentry "ReactOS" {
set root=(hd0,1)
chainloader +1
parttool (hd0,1) boot+
multiboot /freeldr.sys
}
Read also:
To chainload Grub2 via Grub4Dos
To get Windows boot using Grub4Dos
———————————
Android on partition /dev/sda2
menuentry "Android-x86" {
set root='(hd0,2)'
linux /android-8.1-r2/kernel root=/dev/sda2 androidboot.selinux=permissive vmalloc=192M SRC=/android-8.1-r2
initrd /android-8.1-r2/initrd.img
}
—————————–
FreeBSD partition /dev/sda1
menuentry "FreeBSD boot loader "{
set root="hd0,1"
kfreebsd /boot/loader
}
An another way to add FreeBSD to linux’s grub, is to use chainloader
menuentry "FreeBSD chainloader" {
insmod ufs2
set root=(hd0,1)
chainloader +1
}