2

I'd like to run Windows off my NVME SSD. My mainboard has an EFI bios but does not support booting from NVME. My current SATA disk has a GPT partition map and boots through EFI.

What I wonder is, wouldn't it be possible to have the Windows bootmanager on the regular SATA SSD, but have the bootmanager launch Windows off a partition on the NVME?

If that's possible, how can I setup windows bootmanager to do so?

9
  • Probably by installing Windows Boot Manager to a FAT32-formatted EFI System Partition on the SATA drive with bcdboot.
    – Tom Yan
    Commented Nov 26, 2019 at 14:57
  • @Tom Yan, why does it need to be FAT32 formatted? afaik the windows 10 setup puts the bootmanager onto an NTFS partition. only the EFI partition is fat32, contains the NTFS drivers and then launches the bootmanager, isn't it? can't I somehow configure the existing boot manager to launch off the NVME disk? do I need to somehow install EFI based NVME drivers? how is this done? Commented Nov 26, 2019 at 15:00
  • I was talking about an EFI system partition, so FAT32, as you said. You might be able to make it to load a BCD store on the NVMe drive, I don't know, but you'll need to install another copy of the boot manager to it anyway (which would load necessary drivers so that you can boot an installation on the NVMe drive).
    – Tom Yan
    Commented Nov 26, 2019 at 15:06
  • Oh I might have missed your point. The Windows Boot Manager for UEFI is in the EFI system partition.
    – Tom Yan
    Commented Nov 26, 2019 at 15:07
  • Oh ok, I thought bootmanager normally lives in an NTFS partition which is booted up from the EFI partition. But eitherway - why would there need to be a bootmanager on the NVME drive? Commented Nov 26, 2019 at 15:13

2 Answers 2

0

Kind of old question, but this actually works with a separate bootloader called Clover, which has an NVMe driver ("NvmExpressDxe-64.efi"). The bootloader needs to be placed on an USB stick or SATA drive, and then Clover will continue the boot on the NVMe drive.

It's niche, but there are some tutorials available if you Google "USB NVMe Clover boot Windows".

1
  • As it’s currently written, your answer is unclear. Please edit to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers in the help center.
    – Community Bot
    Commented Nov 11, 2022 at 17:59
0

Win boot manager can only see what your BIOS or UEFI can see (depending which flavor you're booting). It has no notion of drivers for itself, so it cannot boot off BIOS/UEFI inaccessible drives. GRUB can load its own hardware drivers, but there are none (good) for NVMe for it. (There's a bad one for GRUB4DOS, which chances are better than 50% it won't be working on somebody else's computer than the developer's.)

So... the only option is to soft- or firmware-patch your UEFI or BIOS/CSM. The former is easier than the latter, simply because UEFI was made to be modular and support drivers, while BIOS/CSM images need vendor specific tools to patch.

IIRC, Clover is weird combo of DUET [a UEFI emulation over BIOS] and rEFInd, plus [ACPI etc.] hacks to emulate a Mac, most of which you don't need in this context. You can simply use rEFInd + a NVME UEFI driver since you say your UEFI is working. You can try this pack suggested on a HP site. Keep in mind it's a user contribution, not an official HP thingy! The more official instructions from the rEFInd developer are here.

If your UEFI comes with an UEFI shell, you can simply load the NVMe driver, but most consumer/desktop UEFI implementations (unlike server ones) don't come with a UEFI shell, in my experience. You can definitely start one (from disk) like any other UEFI app (and there's one freely available in the TianoCore--and from there extracted for more convenience), but it's easier to use rEFInd instead since it will simply auto-load drivers placed in a specific sub-directory.

Another option is to hope that your UEFI is 100% conforming and supports loading drivers via [NVRAM] variables (see option 3 here) but in my experience, there's plenty of UEFI firmware implementations where that simply doesn't work. And as I don't see that mentioned in the linked Q: the UEFI shell command that edits those is bcfg.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .