[Guide] NVMe-boot without modding your UEFI/BIOS (Clover-EFI bootloader method)

EDIT by Fernando:
@all visitors of this thread:
Since the thread opener Nyctophilia hasn’t been online for a very long time and his guide may not be up-to-date anymore, I recommend to read >this< additional statement written by our Forum member sibliss. Users, who have any problems or questions regarding the guide, may post them directly @sibliss until Nyctophilia is back.




Advantages:

+ Theoretically, it should work on every BIOS and UEFI. Not restricted in terms by the BIOS/UEFI-vendor. (Yes, by BIOS I mean even legacy BIOS)
+ No BIOS/UEFI-Modding needed (I used this method for a Fujitsu Workstation with Aptio V UEFI, which is currently not NVMe moddable)
+ Easy updateable EFI. Changes to the configs can be made out of your favorite OS via text-editor.
(+) You can have a Hackintosh (Don’t ask me for support on this, I never intended to have one, I’m just using the EFI-Loader + NVMExpress.efi driver.

Disadvantages:

- Slightly longer boot times (This can be decreased by changing values inside the config.plst

NOTE to Legacy BIOS users: I didn’t try a Legacy BIOS installation yet, so the steps for you are just theoretical. Feedback is welcome and needed!



How does it work?:

BIOS/UEFI->Clover-EFI->NvmExpressDxe-driver->bootpartition@NVMe-drive->OS




What do we need?

- Bootable Windows 7 - 10 installationmedia (USB or a plain optical disc)
Note to Windows 7 / Server 2008 users:
You need to insert the Windows 7 / Server 2008 NVMe driver before installing or insert the appropriate “F6-driver” by your vendor while choosing your installation disk in the Windows Installation Setup. Detailed guide here: [Guide] Installing Windows 7 on an NVME SSD (from a USB 3.0 thumbdrive) - I will use Windows 10 in this guide)

- a plain USB flash drive or SD-card if a cardreader is present
- Alternatively you can also use a SATA-device, but I won’t cover the installation to a internal harddisk/SSD in this guide, as I like the concept of a seperate USB-flash for the Clover-EFI bootloader. It’s easily replaceable and fastforward to install. You also don’t have to worry about data-loss when updating it. If your legacy BIOS does not support USB-boot, then you shouldn’t stick in a PCIe SSD into your machine anyways… A good reason to install it to a SATA-device might be, that you don’t have any USB-ports left or if you are using a notebook (I don’t consider sticking out USB-drives as a permanent and convenient solution). But check first if you have a cardreader, especially when you own a notebook. In BDU, you still have to enable the listing of internal, fixed disks first. Keep in mind that this installer will wipe the selected disk completely, so backup your data beforehand. If you find another way to install it without endangering the whole disk, just tell me. I will add it as an alternative option to my guide.




What to download:

For Windows 7 / Server 2008:
- MS NVMe Hotfixes for Win7/W2k8 (The MS Hotfixes KB2990941-v3 and KB3087873-v2 themselves can be found >here<).

- “BDU” (Boot Disk Utility by Cvad)




Prerequesites:

- Your PCIe SSD should be installed into your machine.
- Extract BDU.




Installation:

1.
Insert the USB flash drive or SD-card into your machine.

2.
Open up BDU. (Boot Disk Utility)

2a.
Select your flash drive/harddisk. (For internal SATA-Devices, you need to go to Options > Configuration > Enable Fixed Disks > OK.)

2b.
Softly click on “Format Disk” and wait for the magic.

2c.
When it’s done, check if you can see a 200MB Partition in your Windows Explorer with files in it. If that’s not the case, BDU failed. (This happened to me sometimes, when fooling around with different bootloader/filesystem-settings. Just boot a linuxbased distribution with (g)parted and wipe all partitions + create a ntfs filesystem on it. Else Windows f%#&s around.)

3.
Access your Cloverstick via Explorer.

3a.
Copy \EFI\CLOVER\drivers-Off\drivers64\NvmExpressDxe-64.efi…

…Legacy BIOS: to \EFI\CLOVER\drivers64</b>
…UEFI: to \EFI\CLOVER\drivers64UEFI</b>
NOTE to Legacy BIOS users: In case that it won’t work like this, copy it to both folders. I can’t tell you if it will work like described. You can check if the driver is loaded properly by opening the Clover-EFI-Shell and just typing “drivers”. It should be listed at the very end.

3b.
Additional:
Edit \EFI\CLOVER\config.plist with your favorite Editor.

Change the value:

<key>Timeout</key>
<integer>5</integer>


to something lower, like 1-3 seconds. Just change the number.

Example:

<key>Timeout</key>
<integer>3</integer>


4.
Reboot your machine and enter your BIOS/UEFI.

4a.
Legacy BIOS: Change your bootorder. Setup the freshly created stick as primary boot device.
UEFI: If possible, disable CSM or change the Storage Oprom to “UEFI only”. Change your bootorder. Setup the freshly created stick as primary boot device.

4b.
Exit and Save Changes.

5.
Attach your Windowsinstallation media.

6.
Boot into the Clover-EFI bootloader.

6a.
Pick your Windowsinstallation media via EFI-Boot. (Windows 7 / Server 2008 users, please read the notes at the start of this guide under “What do we need?”)

7.
Continue with your Windows setup and delete all partitions on your NVMe-drive. Install Windows to your drive as usual. Wait for the installer to finish.

8.
If you followed the guide correctly, the Clover-EFI bootloader should detect your Windows installation and boot from it.

9.
Install your drivers and tweak your Windows as you wish and don’t forget your vendors NVMe driver for highest performance!


This guide is still work in progress!

Credits go to the Clover-Team!

Enjoy.


Edit1 by Fernando: Thread title shortened
Edit2 by Fernando: Links to the MS NVMe Hotfixes for Win7/W2k8 updated/customized

2 Likes

Thank you for saving my new SSD.
It works.

Hi Nyctophilia,

AWESOME!
I’m looking for the NVME booting solution couple weeks.
Now, the Sony VAIO laptop can boot from the Clover USB and recognize the NVME drive for further OS loading.
Many thanks for you.

@Nyctophilia :
Thank you very much for having written and published this extremely useful guide at Win-RAID Forum!

@Clover Team:
You obviously have done a great job - congratulations!

@all:
It is great, that booting off a PCIe/M.2 connected NVMe SSD now seems possible for nearly everyone with an old computer and a LEGACY BIOS, that means without the ability to boot in UEFI mode.
Big additional advantage: This method does not require any BIOS modding!

@Gerson and @Claud :
Welcome at Win-RAID Forum and thanks for your feedback!
Enjoy booting off your NVMe SSD with a natively not supported hardware configuration.

Regards
Dieter (alias Fernando)

@Fernando :

I’m happy to this forum.
Thank you.

@Fernando
Finally I can contribute some small amount of wisdom back to this forum. It helped me so many times!

@Gerson and @Claud
Really glad it works for you!


@Claud
Which exact model do you have? Are there any other drives in your notebook? I think for notebookusers, usb drives are not the best solution :stuck_out_tongue:
Maybe use a SD-Card or SATA-device. I mean it works with Cvads BDU, but just be careful when creating the EFI-partition.

Greetings

@Nyctophilia
The laptop is SONY VAIO SVP1322YCW as following information:
CPU: i5-4200U
Chipset: Intel 8 series
RAM: 8G(On board)
HDD: Samsung XP941 128G M.2

I think the Sandisk CZ43 USB is tiny enough :slight_smile:

If you like to know the long story(sorry for the English)… Orz

I met BSOD on Win 8.1 and Win 10, even use the Sony Care to restore to factory default or re-install Win 10.
Sometimes I fail on logon or file copy but the CrystalDiskInfo shows the S.M.A.R.T status is good.
The cpu fan is loudly but CPU temp. is not too hot(50~60 degree C).

Finally, I have no idea and decide to purchase a Intel 600P 256G M.2.
To solve the BSOD maybe and upgrade the SSD capacity.

I used Rufus to create an UEFI Win10 1607 USB for installation.
I can see the Intel 600P 256G SSD during the install selection.
It looks ok and finish the file copy process.
But it doesn’t boot after first time boot.

I tried to google the reason why not booting and leraned about Samsung XP941 is supported by SVP132 BIOS but Intel 600P is not.
Meanwhile, I have misunderstanding the root cause and try to find the NVME support via another boot loader GRUB2 but no luck.

Then I found many discussion about the BIOS NVME mod especially Win-RAID.
But I have no courage to update the VAIO bios right away.

So, I figured 3 solutions.
I tried 1st solution about 1 week till today. It’s not too bad, but sometimes slow moving on the USB drive.
Now is 2nd solution and it works very well.

1. Make a Win 10 on the go USB as primary drive and the Intel 600P SSD as very fast data drive. :stuck_out_tongue:
2. Try to find the GRUB2 with NVME support. It’s wrong. The root cause is BIOS not bootloader.
I also referred to a discussion about the Tianocore - open source UEFI.
But it’s a little hard to understand the usage.
I made a USB with tianocore and boot up while the bios set to legacy.
But I didn’t find the NVME device in the Boot list and PCI device list.
I think about where to load the NVME driver in tianocore UEFI?
At the same time, my colleague found some discussions about the NVME support by Clover.
Finally, we found your post TODAY. :slight_smile:

3. No choice. Try to update the BIOS with NVME mod. But the risk is own by myself…

@Claud

Weird, then your BIOS/UEFI probably got whitelisted hardware.
Clover is based on Tianocore by the way. Tried it aswell with Tianocore first and failed. It seems, that it’s not developed actively anymore.

Hello folks,

after hours of fiddling and studying Clover, Tianocore, DUET, UEFI, UEFI Shell, Windows Boot loader internals, other tutorial on this, etc… I am reporting !!! SUCCESS ON BOOTABLE NVME UNDER WINDOWS 8.1 PRO on my 8+ years old ASUS P6T SE, Core i7 920 with SAMSUNG SM961 256GB !!!

It can’t be described what I am feeling right now to see it booting and working. Just - it was definitely worth spending the time with it and I think it’s the best upgrade for my trusty P6T SE/i7 920 in its existence. Still running strong :wink:

I will not post the exact steps I did to get this working right now, still want to try and document another ways (i.e. clone my old Intel Raid-0 system and try different bootloaders), but I’ll write very detailed and easy-to-use tutorial in the coming days (weeks?) as my time permits.

So far speeds are awesome, didn’t even have to turn off RAID in BIOS - my “legacy” Intel RST RAID-0 works too and is even accessible from this new NVMe system, next - Samsung NVMe driver works ok, Windows 8.1 Pro seems stable, hope it will last. Screenshot of my freshly installed Win 8.1 Pro right now:



STAY TUNED !!!

-M.

@mireque :
Welcome at Win-RAID Forum and thanks for your feedback!
It is really great, that you succeeded to get the brandnew Samsung SM961 NVMe SSD booting with your old Intel X58/ICH10R system.

That would be fine!

Regards
Dieter (alias Fernando)

I got the process to work and my Dell Precision 5510 is running Win 10 x64 Enterprise with a 512gb Samsung SM951 without any problems, but performance is average, at best. The only thing I can think of is that at one point, I put the NvmExpressDxe-64.efi in both the drivers64 and drivers64UEFI folder (step 3a) and left it in drivers64 before I figured out the sequence (didn’t write it down). Could Windows be running in Legacy mode?

I read the internet for hours last night and found that Clover is quite configurable and can update easily (if you have a Mac). What I couldn’t find is how to use the Clover boot drive used here to update the bootloader (correct term?). I’m hoping I can simply remove NvmExpressDxe-64.efi from the drivers folder re-create the bootloader without doing a full wipe of the drive and re-installing Windows?

Here’s a screenshot of my drivers, benchmark, and something I thought was interesting from Samsung Magician: it shows the SM951, but I think it’s just reading some metadata from Windows. I don’t think it fully recognizes there is a Samsung SM951 there because the only function available is performance benchmark (which it will do for any drive).

12/2/16 Edit: I did a wipe and re-install with the .efi file only in the drivers64UEFI folder and performance in Windows was similar. Upon a deeper look, the SM951 is the limitation and is likely going as fast as it will. Also, Samsung Magician not recognizing it is a known issue as well. For the future, knowing how to use Clover to update the bootloader would be great.|addpics|c50-2-d624.jpg|/addpics|

@mireque
You succeeded by following this guide or which bootloader did you use? I’m little bit confused, because you are writing about multiple ones. You want to write your own tutorial specifically for your board or legacy BIOSes in common? If you want, we can add an universal addition to my guide.

@jimbob_sf

That’s the problem with Clover. It’s made for Hackintosh purposes, so you’ll find most tools only for OS X.
You want to update your Clover-EFI? On what media did you install it? Flash or SATA SSD/HDD?

Greetings

I used a USB flash drive with Clover in one USB 3.0 port and Win 10 Ult x64 (rufus iso) on another USB flash drive in another USB 3.0 port. I did a clean install after I posted with the file in the drivers64UEFI folder only, so my install is now clean. However, knowing how to update the bootloader&nbsp;using usb flash / Clover would be great in case there is a newer version of the NvmExpressDxe-64.efi file is produced some day.

I mention this specific use case because I noticed in one of the other NVMe boot threads (forget where I read it when I was trying to figure this out on my own) that a newer NvmExpressDxe.efi file was being used, but it didn’t have “64” in the name, so I assumed the file provided in this guide was better for a 64bit OS, even though older (Fernando often points out that newer isn’t necessarily better).

Edit: 12/12: A new NvmExpressDxe-64.efi!!! Fantastic.&nbsp;I’ll wait until prices for the 960 Pro (1gb) to come down to start fresh or someone posts how to update the bootloader through Clover with this new file. I took the time to read the referenced thread and it and other well-documented guides, are oriented towards modifying a mobo bios module.&nbsp;My $$ Dell laptop is still under warranty and I’m not about to&nbsp;even try to touch it’s&nbsp;bios.&nbsp;The Clover bootloader&nbsp;process is&nbsp;the perfect solution, so I’ll wait for a kind person to document how to update. Even with the original NvmExpressDxe-64.efi file, I’m faster than stock.

p.s. Donation to Fernando sent - your effort to help so many is to be commended!

What we have here is an NvmExpressDxe-64-3773.efi file dated 09/28/2016. It had been compiled by the Clover Team and was posted >here< by our Forum member davidm71.

@jimbob_sf
Just flash over your USB drive containing the clover efi or insert the module in the appropriate folder described in this guide. (Use BDU for that) - Warning, your USB drive will be wiped
By the way: A new Module won’t make your drive faster. As soon as Windows boots, you are using the standard microsoft windows nvme driver or the windows-driver from your nvme vendor.
The the Clover nvme-driver is just there to make your drive bootable, because your bios/uefi doesn’t support nvme.

First of all, THANK YOU for a most excellent guide, and all the hard work you put into doing this.

I’m having a problem with Clover just hanging when I select my boot device. ANY boot device. I will get either the windows or clover logo just frozen.

I’m running a HP z620 workstation with a secure BIOS that I just can’t seem to get to flash so I went looking for other methods (like yours!). Any help would be great. What info would be useful in diagnosing this problem?

I wanted to update with MY personal experience…

I didn’t use the clover method listed here, but I did use the drivers from clover while implementing the rEFIned Bootloader instead.

I have a Samsung 850 evo with 2 partitions: a small partition for the rEFIned Bootloader, and a storage partition. I have copied the NVME drivers into the appropriate place, and verified they loaded in the UEFI shell. The system now boots to my fresh install of windows 10 on my Samsung SM961 (OEM version of the 960 pro) on my HP Z620 workstation!

Thank you all so much for the help and guidance provided on this forum. Now if only I could figure out why all my write speeds are SOOOO SLOW!

@UnionSparky :
Welcome at in-RAID Forum and congratulations, that you succeeded trying to get your Samsung SM961 bootable!

Have you already tried to enable both Write-Caching "Policies" of your listed SSD within the "Disk Drives" section of the Device Manager?

Happy New Year
Dieter (alias Fernando)

I have. My issues are mostly due to the 128gb drive performance in general. I’ve read many posts and have the optimal drivers, BIOS, etc.

My SM961 128GB write speeds are slower than your posted benchmarks for the 950 pro, but read speeds are a bit faster. I didn’t want to shell out the big $$ till I was sure I could boot to OS.

I’ve read that the NVME isn’t a great option for OS storage (longer boots), what are your thoughts on that? From a full shutdown (no fastboot) I will go from BIOS splash screen to Windows 10 desktop in just under 11 sec. On my SM961 128gb.

Thank you for a great guide, Nyctophilia!

Worked like a charm, but had to set DefaultLoader to blank to get the settings in config.plist to work on the newest version of Clover that I got via cvad’s great boot disk utility.

Now my new 256GB Intel 600p nvme/m.2 SSD is working with super speeds(1500 MB/s!!) in W10 on a Gigabyte BIOS mobo from 2010!

-Great fun!

Now I just got inspired to install Mac OS, as well…

Vegard