I haven't checked with Windows 10, but the installers for earlier versions of Windows tended to become confused when presented with disks that have multiple ESPs. My recollection is that they'd present errors after getting partway through the installation. Note that the ESP is supposed to be shared between all OSes installed on a computer. Although there's nothing in the EFI specification to forbid the creation of multiple ESPs, the usual practice is to share one ESP. Thus, if the disk already has an ESP, Windows is perfectly within its rights to add its boot loader to that ESP, even if that ESP was created by another OS.
Note also that there's nothing wrong with an OS using an ESP on one disk to boot the OS installation on another physical disk. Thus, if your first disk has an ESP, installing Windows to the second disk might result in no ESP being created on that second disk; Windows might just use the ESP on the first disk. That said, I've never actually tried this, so I don't know what Windows actually does.
None of this would explain why Windows would fail to boot once properly installed; however, there might be some ancillary issue at work. For instance, as I understand it, you've got a working Ubuntu installation and you tried adding Windows to that installation. If the Windows EFI boot entry somehow did not become the default, you'd need to run sudo update-grub
in Ubuntu to add a Windows entry to the GRUB menu.
Another possibility about what's going on is that you might have installed Ubuntu in EFI mode and Windows in BIOS mode. Such cross-mode installations are possible, but they're usually very awkward to manage. In Ubuntu, check the partition table types for both disks. (Tools like parted
and recent versions of fdisk
report this information.) If they're both GPT, then this Windows-in-BIOS-mode hypothesis is wrong. If the Windows disk uses MBR (which parted
, at least, reports as "msdos"), then you've probably got a mixed-mode installation. See my page on the CSM for more on why this type of configuration is awkward and how to control your boot mode. If you've got a mixed-mode installation, you have at least two options for how to proceed:
- Re-install Windows -- You can wipe the partitions from the MBR disk, create a GPT on it, and re-install Windows. This is probably the best approach. You'll need to learn how to control your boot mode, as described on my CSM page, so that you don't accidentally boot the Windows installer in BIOS mode.
- Use rEFInd -- My rEFInd boot manager is an EFI-mode boot manager that can redirect to boot in BIOS mode. If you install rEFInd in Ubuntu, you can then edit
/boot/efi/EFI/refind/refind.conf
: Uncomment the scanfor
line and ensure that hdbios
is among the options. (You may also need to uncomment uefi_deep_legacy_scan
, but I recommend doing this only if you don't see an option to boot the Windows-containing disk without this option.) When so configured, rEFInd will show, on most computers, BIOS-mode boot options for your hard disks. One of those options should boot your existing Windows installation in BIOS mode.