I wanted to dual boot using only the BIOS using two separate SSD's (one existing Win10 and the other Kubuntu 19.04) but I didn't realised thats just not how it works on UEFI systems.
So this is as much a reminder to myself as a guide to others. Anyways ...
The 1st time I installed Kubuntu 19.04 I installed it having booted up in non-UEFI mode in the BIOS and I suspect this is when the all the directories on the Windows boot partition got scrubbed.
After I installed Kubuntu 19.04 the 2nd time it would only boot into Kubuntu without presenting the GRUB menu.
I installed and ran boot-repair (and selected unhide menu option) which resulted in the GRUB menu being presented but no Windows option. NOTE: I also ensured that GRON was intalled on all drives and that the SSD with Windows on it was the primary boot drive in the BIOS.
There is where I when off on a tagent trying to manually add custom menu options which resulted in errors like "Invalid EFI path" or "file /EFI/Microsoft/Boot/bootmgfw.efi not found".
So heres the tip: If GRUB2 can't find a bootable windows partition It wont add anything the the GRUB menu. So to confirm and fix this you will a Windows recovery USB and willingness to to use the CLI.
If you dont have a Win10 Recovery USB follow these instructions (assum ing you access to a working Win10 Machine) https://support.microsoft.com/en-us/help/4026852
Steps: - Reboot using the Windows recovery USB - Go to Repair Your Computer > Trouble Shoot > Advanced Options > Command Prompt
@ Command Prompt diskpart ## Starts Win10 partion manager sel disk 0 ## Selects the 1st disk drive list vol ## Shows partitions - The Windows boot partition will be about 100 Mb to ~250 Mb in size and is usually the 1st partition on the disk. You may need to work you way through the drive numbers. ## Assing a drive letter if list vol shows NO drive letter for the boot partion - skip this if a letter is alyeady assigned assign letter=S: exit ## exits back to the command prompt S: ## swaps to the S drive or use the drive letter dir ## Lists all the top level folder oin this drive - in my case there was nothing! mkdir \EFI\Microsoft\Boot\ cd \EFI\Microsoft\Boot\ ## create and cd into the boot folder bootrec /fixboot bcdboot C:\Windows /s S: ## Installs the bootloader for winbdows and points it to C: drive ## C drive is were Windows is usually installed but use the drive letter per the list vol command. - Exit and reboot - Windows as picked up by GRUB2 and added as a menu but if not boot into linux and run boot-repair, you should notice the console log picks up the fact theres a Windows bootable partition and adds it to the GRUB menu
Haven't have a problem since and wished I knew what I know now which would have saved me days of angst.
Helpful links: http://www.rodsbooks.com/refind/installing.html#winprob