After installing SUSE on PCIe SATA SSD, Windows restart makes PC hang

I think my problem is probably caused by the interaction of Windows and my Lenovo PC, so not a SUSE problem. But it started when I installed SUSE as a second Linux and maybe somebody here recognises it.

This Lenovo SFF (Small Form Factor) PC came with Windows 11 installed on the single M2 NVMe. It has only one mainboard SATA HD socket: sda. I installed an SSD with SUSE TW which used sda1 for /boot, which I later replaced with a Debian SSD which (my mistake) put /boot/efi on the NVMe. I wanted both Debian and SUSE an separate disks.

So I added a PCIe card with two more SATA sockets and installed a second SSD (sdb). But the machine will not boot from those; my understanding is that they are not visible to the BIOS at boot time. I installed openSUSE leap 16 onto sdb and specified to use the (accidentally) vacant sda1 for booting. SUSE set up a grub menu in sda1 from which I could boot SUSE, Debian, and Windows. Success!

But there was a problem when booting Windows. When I boot Windows (either using the grub menu or the Lenovo F12 Boot Selector key) and then close it down or restart it the machine hangs on the Lenovo splash screen. It will not react to the power button, or the F1 (bios) or F12 keys. (The Energy Star logo is also on the display.)

In attempting to fix that I separated Windows from grub. I deleted the grub and Debian stuff from the Windows NVMe and used Debian to set up sda1 for booting. I also disabled os_prober intending to use the Lenovo F12 key to boot Windows so that grub wasn’t involved. (I also added a grub menu item to chainload the SUSE grub menu that Debian had conveniently left untouched.) All that had no effect on the window restart problem.

The only way I have found to recover the PC is to physically unplug the second ssd - the one with SUSE on. Having done that and restarted, the PC it will reach the grub menu. After that I can shut it down with linux or just turn it off.

I seems to me that Windows expects sdb to exist when restarted despite sdb (or indeed sda) not having been involved in booting or starting it. And because sdb is invisible to the bios at boot time it has apparently disappeared, which causes the PC to hang.

Has anybody seen this before? Any suggestions would be apreciated.

The only advice I have found by searching is to switch off Windows’ “fast startup” (in power button settings) which I have done.

I don’t use Windows often, but when I do I am currently opening the PC and unplugging sdb’s SATA cable!