I have Windows installed on an older MBR-formatted hard drive, while Manjaro was installed in UEFI mode on the same drive. Linux boots through UEFI, but Windows only starts when I select its legacy BIOS boot entry manually. I would like to add Windows to the GRUB menu so other people using the computer do not have to enter the firmware boot menu. The layout is roughly sda2 for the Windows MBR-related boot area, sda3 for the Linux EFI system partition, Windows itself on sda5, and Linux on sda8. What is the safest way to configure this?
4 Answers
The disk can potentially be converted from MBR to GPT and Windows can then be changed to UEFI boot, but that requires preparation and backups. Verify that the Windows version, firmware, and existing partitions support the conversion before attempting it; otherwise, reinstalling both systems in the same boot mode is usually the more dependable option.
A longer-term fix would be moving Windows to a separate SSD and using the old hard drive for storage or backups. Mixing legacy and UEFI boot installations on one machine can work in some cases, but it tends to create maintenance and recovery problems.
The safest approach is not to mix legacy BIOS and UEFI boot modes. Either reinstall or reconfigure Linux to boot in legacy mode so both systems use MBR, or convert Windows and the disk to GPT/UEFI so both operating systems use UEFI. GRUB generally cannot directly chainload a legacy Windows installation from a UEFI-only setup in a clean, reliable way.
If Windows is the system most people use, set its firmware boot entry as the default and leave Linux available through the boot menu. A simple instruction sheet may be less fragile than trying to make a mixed-mode setup work.

Related Questions
Can't Load PhpMyadmin On After Server Update
Redirect www to non-www in Apache Conf
How To Check If Your SSL Cert Is SHA 1
Windows TrackPad Gestures