You've got two disks:
/dev/sda is an MBR disk that holds Windows and has the Windows BIOS boot loader in the MBR.
/dev/sdb is a GPT disk with an EFI System Partition (ESP). The ESP holds both GRUB and the Windows EFI boot loader, and the MBR holds the first-stage GRUB BIOS boot loader.
Note that you've got both BIOS and EFI boot loaders for both Windows and Linux, so it's unclear how either of your OSes is booting -- in BIOS mode or in EFI mode. Given that Windows is installed to an MBR disk, my hunch is it was installed (and should boot) in BIOS mode; but it's conceivable it's booting in EFI mode, since you seem to have a Windows EFI boot loader in your ESP, even though it's on the other disk. (OTOH, those files may have been placed there by Boot Repair, which sometimes "hijacks" those names for copies of GRUB.) Both your Boot Repair and your Boot Info Script outputs include
efibootmgr runs, which indicates that they were run from an EFI-mode boot; but it looks like they may have been run from a live CD, so that's not necessarily diagnostic of how your regular installation boots. Your
grub.cfg file has some EFI-specific features, which also suggests an EFI-mode installation of Ubuntu, but that could be misleading.
Untangling this setup is possible but would be quite tricky. There is a potential shortcut, though:
- Download the USB flash drive or CD-R version of my rEFInd boot manager.
- Prepare a boot medium from the files you download.
- Boot to the rEFInd medium. Its menu should appear, showing options for both Ubuntu and Windows. Note that the point of using rEFInd up to here (and in the next couple of steps) is to ensure that Ubuntu boots in EFI mode and not in BIOS/CSM/legacy mode.
- Test the boot options. I expect that at least one Ubuntu option will boot normally, but Windows is up in the air. (The option might start and then hang or present an error message.)
- If rEFInd can boot Ubuntu normally, and especially if it can also boot Windows, install the rEFInd PPA or Debian package in Ubuntu.
- Reboot with the rEFInd USB drive or CD-R removed. rEFInd should come up, booted off your hard disk.
- Boot to Ubuntu from rEFInd.
- If rEFInd did not boot Windows, edit the
/boot/efi/EFI/refind/refind.conf file: Uncomment the
scanfor line and ensure that
hdbios is among the options. This action activates rEFInd's support to switch from EFI-mode booting to BIOS-mode booting. The idea is to get rEFInd to show you an option to boot Windows in BIOS/CSM/legacy mode.
- When you reboot, you should see a new gray diamond-shaped option with a hard disk badge. With any luck, this will boot Windows (in BIOS/CSM/legacy mode).
- If the new BIOS/CSM/legacy option does not boot Windows, uncomment the
uefi_deep_legacy_scan option from
refind.conf and try again.
Note that you can delay installing rEFInd to your hard disk and edit the
EFI/refind/refind.conf file on the USB flash drive if you want to test rEFInd's ability to boot Windows in BIOS/CSM/legacy mode. You might do this if you want to be sure rEFInd can boot both OSes before installing it.
The end result is that you'll boot Ubuntu in EFI mode and Windows in either EFI mode or BIOS mode, whichever was used for its installation. You may have extra boot options on rEFInd's menu, but you can trim those by further edits to
refind.conf. In particular, you'd use
dont_scan_volumes. You can also delete pointless boot files, such as if the "Windows" boot files (
/boot/efi/EFI/Microsoft/Boot/*.efi) are copies of GRUB created by Boot Repair.