I upgraded my PC by swapping out the motherboard, CPU, and RAM, and installing an NVMe drive in addition to the existing SATA SSD containing my Windows installation. Specifically, the old parts:
- Aorus X570 Pro Wifi
- AMD Ryzen 9 3900X
- Corsair Dominator Platinum RGB 8GB DDR4 3200 (x4)
...And the new parts:
- Asus ROG Strix B650E-F Gaming Wifi
- AMD Ryzen 5 9600X
- Thermaltake TOUGHRAM XG RGB D5 16GB DDR5 (x4)
(Having trouble re-finding the details on the NVMe drive at the moment, though in any case I don't believe it's relevant.)
After swapping the parts, I found I could no longer boot to my Windows disk. Attempting to do so yields an error screen like this:
Windows failed to start. A recent hardware or software change might be the cause.
I started trying to fix this by making an installation USB (using the Windows 10 installation media creation tool), entering the command prompt, and using bootrec /rebuildbcd. This failed to find any Windows installations to operate on. I then checked the disks with diskpart followed by list disk. This revealed that it wasn't even finding my Windows SSD at all; only the new NVMe.
I then started investigating my BIOS settings; I tried every combination of the following, where the settings in bold were the defaults before I changed anything:
- Other OS boot mode vs Windows UEFI boot mode
- CSM off vs on
- SATA RAID vs AHCI
Notably, turning off Secure Boot is recommended as a temporary troubleshooting step in many threads online, but I can't find an option to do so in the ROG Strix's BIOS settings.
SATA AHCI mode seemed like the most promising change to hopefully enable the USB media to see the SSD, but I found that whenever the SSD is in AHCI mode, I simply can't boot to the USB at all. It consistently gets stuck on the ROG Strix logo, either freezing there or just loading forever.
So now I'm in a kind of catch 22, where setting the SATA configuration to AHCI might enable me to see my Windows drive from the USB installation media, but it also prevents me from using the USB for some reason.
For additional context, I installed Linux Mint on the NVMe drive and that works just fine - in fact, I'm writing this from said Linux installation. I also can browse the Windows SSD from Linux just fine, no matter whether it's in RAID or AHCI mode. This has a few implications:
- I know my hardware setup is viable in general, seeing as I have a fully functional OS installation.
- I know my Windows installation isn't corrupted - not entirely, at least - since I can browse its file system from Linux and everything that I can find appears to be intact.
- I might be able to rebuild the Windows BCD from Linux, and will happily do so if possible.
Research on that last idea, though, has so far turned up nothing that accounts for the two OSes being on separate physical disks of different types. The only solutions I've found on that front appear to involve essentially copying the Linux MBR to the Windows installation (if I'm remembering/understanding this right), which seems to assume that they're booting from separate partitions on the same disk. In addition to being pretty sure these solutions wouldn't work, I also don't currently feel I understand the concepts involved well enough to risk trying.
Rebuilding the Windows Boot Configuration Data via the Windows bootable media using tools specifically designed for that purpose? Sure. Using my Linux Master Boot Record to fix my Windows installation that lives on a separate disk? Raises too many questions that I don't know the answer to.