3

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?

Thanks!

2
  • 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
    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
    Jan 1, 2022 at 18:35

1 Answer 1

2
+250

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.

2
  • 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. Feb 2 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. Feb 3 at 5:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.