UEFI increases the complexity of setting up a dual/ multi-boot OS system. For OEM systems, it might make sense since Windows is often the only OS there, but for custom built systems, this is a farce. Something which should be simple is made complex so as to deter the user from installing other OS than Windows. But there are workarounds, so it has not actually fulfilled the original purpose of UEFI.
In ASUS H97/ Z97/ H170/ Z170 boards, to enable dual boot, we must do a few things:
1. Enable Compatibility Support Module (CSM)
Advanced Menu (F7) > Boot > CSM > Enable
2. Select ‘Other OS’ in Secure Boot in place of ‘Windows UEFI’
Advanced Menu > Boot > Secure Boot > OS Type > Other OS
Here, under default settings, usually ‘Windows UEFI’ will be selected. OEM equipment manufacturers ship with Windows, and OEM is a big market, so ASUS by default assumes Windows UEFI will be used, which is obviously not the case with custom built PCs.
Selecting this will also make the ‘Platform Key State’ as ‘Unloaded’, which is otherwise ‘Loaded’.
At this point, we should be able to install multiple OS on the HDD and boot into any without a problem. Of course, it is recommended to install Windows first then other OS.
Hard Drive BBS
ASUS motherboards also seem to be smart enough to group bootable devices by type and when it comes to HDD, show only one among many (if exists). So if you have multiple bootable drives, then only one will show up on the ‘Boot Priority’ menu in BIOS opening screen. The others will be ‘Disabled’, which we can see in Boot Menu (F8) and select from there, but cannot rearrange the order by drag and drop as in Boot Priority.
We can select which HDD among the bootable ones to run the bootloader at startup without bothering to open the BIOS menu and selecting it everytime through Boot Menu manually. This is done by specifying that disk in ‘Hard Drive BBS’ setting under Boot menu:
Advanced Menu (F7) > Boot > Hard Drive BBS > select the disk from dropdown.
Once selected, the others will become disabled and won’t show up on the Boot Priority menu, though the same can be selected from Boot Menu.
This is not much of a botheration, because the motherboard anyway can only run one bootloader among multiple if available; and it is natural to go to the BIOS to change it. Note that if the disk selected has the ‘latest’ bootloader, then we can always boot into other OSes installed in same or even another disk than the one where bootloader is run from. For example, GRUB usually adds entries for all existing OSes, and we should be able to boot into any of them through the GRUB menu.