NVMe for 2013 - 2017 Windows PCs
updated 21 Feb 2022
Background
Hard drive data rate is a key performance limitation in PCs originally delivered with Windows 8.
Many of these PCs from 2013 have motherboards with PCIe slots for discrete GPUs,
but instead drive displays from CPU integrated graphics controllers.
While Windows performance in these PCs can be improved using SSD with SATA interface,
noticeably better performance is possible using SSD with NVMe interface,
which offers both higher I/O data rate and lower processing overhead.
However, NVMe wants 4 lanes of PCIe, which was available on most motherboards
only by a single card slot nominally provided for a discrete graphics card.
Further, BIOS support for booting from NVMe was generally unavailable before 2017.
Meanwhile, many PCIe motherboards have single-channel PCIe card slots
appropriate for M.2 SATA adapters.
Some (mostly older Samsung) NVMe SSDs incorporate ROM for BIOS (AKA CSM or OpROM) booting,
but Windows boots faster using UEFI.
While it is possible to modify some PC BIOS to add NVMe boot support,
that process is IMO tedious and risks bricking the PC.
The rest of this page is about using
CLOVER
on a USB 3.0
thumb drive
to boot Windows 10 from M.2 NVMe
in 2013-2017 desktop PCs with PCIe but without NVMe in BIOS.
Requirements
- Access to BIOS menu (by F2 on many Dell PCs)
- An M.2 NVMe drive
- A PCIe to M.2 NVMe x4 (4-lane) adapter card
- a tiny USB 3.0 thumb drive for CLOVER
Older USB 2.0 drives also work, but boot slower and protrude from a USB socket. - a USB thumb drive >= 8GB to install Windows 10 on the NVMe drive
- BDUtility
AKA Bootdisk Utility, the version used for this page was 2.1.2020.028 Beta.
This will download CLOVER and format the USB thumb drive to boot it.
Perspective
CLOVER is among the more recent utilities used mainly for Hackintosh;
ability to boot Windows from NVMe is incidental.
Consequently, configuring NVMe boot support requires extra steps.
While this is much discussed in the Win-Raid Forum,
a succinct description using BDUtility was found in the
Dell Optiplex Desktops community
Actual location for the essential NvmExpressDxe-64.efi driver seemingly varies considerably
and may require additional research, trial and error for other CLOVER versions.
Procedure
- Update PC BIOS to the current version
For Dell Inspiron 3847, that BIOS is A11 7/31/2019. - Install NVMe on PCIe adapter, then install it in the PC.
- Boot existing Windows 10 and confirm that NVMe drive is recognized.
- Windows 10 has built-in NVMe support.
- Using Disk Management, set GPT on it.
- Download Windows 10 installation media tool and create installation media on a USB drive.
- To avoid installation accidents, unplug the PC’s regular hard drives.
- Boot that installation media USB drive and install Windows 10 on the NVMe drive
- Booting to that thumb drive require USB boot priority in BIOS.
- Windows 10 installation media does not use BIOS to access NVMe.
- When selecting that NVMe drive during the Windows installation process,
delete any displayed partitions, allowing installation to create its own partitions. - At some point, the installation procedure will attempt to reboot to the NVMe drive,
which will fail, if this PC indeed lacks NVMe boot support.
This is OK; NVMe Windows 10 installation will complete after a CLOVER thumb drive is created and installed.
- Unplug the Windows installation thumb drive.
- Reconnect the regular hard drives
- Reboot to the original Windows drive.
- Plug in the USB thumb drive, download and run BDUtility on it.
BDUtility will install CLOVER to a USB flash drive
and configure CLOVER for this system.- launch BDUtility.exe
- highlight the flash drive
- click [Format Disk]
- this not only [re]formats the flash drive,
but also downloads and installs CLOVER on it.
That all takes awhile; wait for All done:
- Copy CLOVER’s NVMe driver to appropriate folders in that flash drive:
- Using Windows Explorer, navigate on that flash drive
to EFI > CLOVER. - from EFI > CLOVER > drivers > off, copy NvmExpressDxe-64.efi
to both:
EFI > CLOVER > drivers > UEFI
and
EFI > CLOVER > drivers > BIOS
- Using Windows Explorer, navigate on that flash drive
- For the PC to boot from CLOVER USB flash,
not only must USB drives have first boot priority,
but BIOS must also have Secure Boot and CSM (Load Legacy OPROM) disabled:
- F10 (on Dell) to save and exit BIOS,
which should then boot to CLOVER,
which will display a set of partitions, some of which may fail to boot
(in which case, power off and try again)- one option should boot the the original Windows 10
- another option should boot to the NVMe partition and complete Windows 10 installation
- if the NVMe partition option is unshown, that means
CLOVER did NOT load its NvmExpressDxe-64.efi driver,
and that version of CLOVER searches elsewhere for drivers;
check newer entries in the Win-Raid Forum…
- if the NVMe partition option is unshown, that means
- CLOVER records the most recent selection option and defaults to it subsequently.
- Edit
\EFI\CLOVER\config.plist
, changing theTimeout
value:<key>Timeout</key> <integer>5</integer>
Reducing 5 to 1 or 2 will boot 3 or 4 seconds faster.