I have a computer about ten years old, and I would like to install a PCIe M.2 NVMe SSD in it. Unfortunately, the BIOS cannot boot from the SSD, because it doesn't know how to boot from a PCIe SSD. This means that I must use SATA instead of PCIe, which means giving up the speed benefits PCIe would offer. I've been trying to find a way which would allow me to boot into Windows 10 (on the PCIe SSD) and here's what I'm thinking:

  • I use a separate SATA SSD and install Linux on it - the BIOS can boot from that.
  • I dd my current Windows 10 installation (presently on a regular HDD) to the NVMe SSD, using the Linux install (should work, right?)
  • I set up the GRUB bootloader to allow me to boot either into Linux or the Windows 10 installation on the NVMe SSD. If GRUB knows how to setup the PCIe SSD, it should be able to bootstrap Windows 10 - right?

Does this have a chance of working?


  • Grub only boots working Windows. so when Windows turns fast startup on or needs chkdsk, you have to directly boot Windows from MBR if BIOS or UEFI if UEFI system. What motherboard. NVMe needs PCIe, and 10 year old system will not have latest/fastest PCie interface. You may not get much better speed than SATA anyway. My 2016 build was M.2 SATA, but recently wanted larger drive and changed to NVMe. Somewhat faster, but not huge as system is from 2016. All parts of system need to be updated together. And I am finding the PBKBAC to be slowest part of system & getting slower. :)
    – oldfred
    Commented Jan 1, 2022 at 16:48
  • The mainboard is an ASUS P7P55D, with PCIe 2.0, so not up to date anymore. But still, with four lanes, up to 2GByte/s throughput would be possible. With SATA, only up to 3GBit/s (~350MByte/s) are possible.
    – merendo07
    Commented Jan 1, 2022 at 18:35

2 Answers 2


As far as I know, there is currently no way to boot Windows from a PCIe device on a motherboard that doesn't natively support it using GRUB. That's how I ended up here.

However, you can do it using Clover EFI bootloader, which was made for booting Windows on Macs.

The idea is to boot to Clover on USB, which will load a driver that allows you to boot Windows from you PCIe NVMe SSD.

here's a guide for installing Clover on USB.

Once you have it installed, you'll need to move NvmExpressDxe.efi from EFI/CLOVER/drivers/off to EFI/CLOVER/drivers/BIOS and EFI/CLOVER/drivers/UEFI.

From there, it should be as simple as booting to the USB.

  • You said "no way to boot Windows"; How about Linux? Not dual booting. I want to install only one OS, Linux (Arch-based) on an NVME disk on a PCIe adapter on an old computer that cannot boot from NVME. It can, however, boot from USB, so I could use an old small USB thumb drive that I have to install a bootloader. Can I do that using GRUB instead of Clover, as GRUB is the default one. Commented Feb 2, 2023 at 4:51
  • The BIOS isn't able to boot directly to PCIe, but yes, if you have a bootloader installed on a USB or other drive, that can boot an OS that's on PCIe. As far as I know most linux installers allow you to put the bootloader in a separate location to everything else when choosing install location. Commented Feb 3, 2023 at 5:06
  • I booted Windows 11 after cloning it from a previously install on a normal SATA SSD. Copy all files in Clover ISO to a FAT-32 USB and copy over the NVMe .efi files to the proper folders, as mentioned above, and BAM. Clover loads and then accesses my NVMe drive where the cloned Win 11 resides. After windows update all is well.
    – andiOak
    Commented Dec 11, 2023 at 1:05
  • I think it should be noted that there is no reason why Clover can't be installed onto an EFI partition and used as the primary bootloader without a USB drive. I just did this on my own system after testing the USB loader.
    – Chiubaka
    Commented Jan 5 at 8:36
  • To answer @DamnVegetables' question, it does not seem like GRUB supports NVMe with things like Windows the way that Clover does. I couldn't even get GRUB to recognize my NVMe partitions in the GRUB command line and kept getting errors about the Windows Boot Manager's partition not being findable.
    – Chiubaka
    Commented Jan 5 at 8:37

Been struggling with the same issue. Clonevilla device to device from my daily Manjaro SSD to a same size nvme. Removed my daily Manjaro SSD and installed a small SSD which I installed a minimum Manjaro. Did a update-grub but cannot get to any of the distos installed on the nvme. Grub can't find the uuid which is the uuid of the volume I'm trying to boot Back to the drawing board and did a raw metal install of a single distro to the nvme and set up virtualbox client an lo and behold vbox can get to the raw metal install on the nvme and boot it. ( I use raw metal VMDK vbox access to the raw client) My motherboard is gigabyte ga-990fxa-ud3, an older MB that gigabyte support says won't boot to nvme.


You must log in to answer this question.

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