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

Thank you for this guide.
I was able to get nvme on an Hp Pro 3500 (3rd gen i5 system). However I did not install windows by having clover boot to the installation media. The bios did not see the NVME drive but I decided to try and install windows on it regularly anyway. I booted the windows install media off usb (without clover | used a yumi created drive) as regular and the windows install detected the nvme drive even thought the bios hadn’t. Windows installed onto the nvme drive no problem but since the bios doesn’t detect the nvme, I was still unable to boot into that freshly made windows installation. I found this guide and followed it up until the point where you have clover boot into the installation media. The first time I fired up the clover usb with the nvme installed I had to manually point it to the nvme windows install iirc. After that, clover was auto booting into that freshly installed windows which was created as you normally would (ie installed w/o clover). I’m just putting this up in case it helps someone. I also upped a vid on YT going over this guide and my experience with the process, can’t post link since I’m new but you can probably find the syntehk channel and just look for the nvme on old motherboard vid (though there really isn’t much info on there other than what’s in this post and guide).

Thank you for this guide.

I would like to add, maybe it will be useful to someone. In General, I managed to clone the system from the old SATA SSD to the new NVMe SSD.

My system:
2600k + z68 ud4, legacy bios f10

First of all, I cloned a sata ssd to an nvme ssd using paragon hard disk manager (any other cloning program will do). And the target nvme ssd deleted the 200MB service partition.

The second thing I did was put the clover boot loader on a separate, unused sata ssd(after the bdu works, all data will be erased), and after the bdu works, I got a 200MB boot partition and an unmarked area that can be used for my own purposes.

Next, you need to prepare a windows boot disk, and you need to do this with a proprietary microsoft utility. Bootable flash drives created using rufus did not work on clover. A boot disk is required to create an efi partition on the target nvme ssd. You need to do this (www. white-windows. ru/ kak-sozdat-zagruzochnyj-efi-razdel-windows-na-gpt-diske-vruchnuyu/) instructions from the section “Creating an EFI partition before Windows”. Instructions are in Russian, so don’t be afraid, and run google translate. Just in case, I will copy the algorithm from the instructions here, in case the site stops opening:
Boot from a bootable windows flash drive ->repair system->console:
“diskpart” command

next:
lis dis
sel dis (nvme disk with cloned windows )
creat par efi size=100
lis vol
sel vol 1 (instead of 1, specify the number that indicates only the newly created efi partition.)
format fs=FAT32
exit

The next step is to restore the boot loader for windows:
bcdboot c:\windows (where “c” is label of part on nvme ssd with windows)

All now clover has to load the cloned system from the nvme ssd.

I want to add that clover needs to be configured for autoboot to work. You need to register the uuid for nvme ssd in config.plist in the “default volume” section. You can view this information in clover itself by clicking “space” on the nvme disk.

@syntehk thankyou for sharing this guide, and I am glad this worked for you. Just a note that the nvme is not supposed to show in bios with this method.

@lexaexe
Hello and welcome to the forums it is worth mentioning that some cloning software can setup the system partition correctly for you during the process. The paragon disk manager can actually do this too. I have used it myself. Note that older versions don’t have the required nvme drivers included. Either way thankyou for sharing your experience. And I am glad to hear that you also got it working.

I have an old HP Prodesk 600 G1 mini that has a PCIE M.2 slot and I have put a M.2 2280 512MB PCIE NVME SSD in it and the BIOS will not recognize it… I am wanting to use it as the system drive but, after loading up, it will not boot from the drive, let alone show it in the BIOS.

I have tried to follow the guide but I’m not sure I did it right… I did follow it to a T

I have used a DVDROM to try to install Windows 10 and an USB drive, to no avail…

Maybe someone has a little more experience can help?

@Wappa
Hello and welcome to the forums.
I am confident we can sort out your problem.
Either this thread or other’s here in the forum.
Firstly I would like to ask the specific model of ssd you have.
I also need to point out that the clover method in this thread will not make the nvme show in the bios as that is only possible by modifying the bios to include the driver. i believe your board already has the driver.
In your instance I would like to start by confirming your hardware and firmware configuration.

@sjsingle1 What worked for me was getting Clover ready and then booting from my media, without Clover.
When my computer restarted, it wouldn’t boot from my NVME drive… so that is when I put in my Clover stick and VIOLA!
It booted and showed my option to boot from my fresh “ready to complete” Windows installation.

After using Clover to boot and choosing my new installation, it defaulted to that installation and boots like a charm!

Good luck!

@sibliss I got it working! cheers

HP Prodesk 600 G1 Mini, i3-4390T @ 2 GHz
16 GB DDR3 RAM
TeamGroup MP33 512GB NVME PCIe SSD

From my research, the drive IS seen by the BIOS (doesn’t show up, otherwise) and not allowed to boot…
I had previously set it up with a 1TB Samsung SATA SSD and Windows 10 did recognize the drive (the NVME drive) and allowed it to be set up to GPT

I got a microUSB drive (no bigger than your thumbnail) and put Clover on it and followed the guide (and someone else’s added steps) but could not get the installation media (both DVD and USB) with Windows 10 in it to load after booting from Clover.

Nothing I could do would make it work the way the guide said to do it.
Sooo… I put in my installation media and installed the first part of Windows 10
Once it rebooted itself, I got the “No bootable media” error.
I put in my Cloverstick and Clover booted and recognized the set up on my NVME drive… I selected it and it finished installing and has not quit booting since…

And I got it done by 2 AM! :stuck_out_tongue:

@wappa
Glad to hear you got it working.
The purpose of the driver in the bios is to allow the bios to recognise the pcie nvme as a boot device which in your instance clearly it is not doing else you wouldn’t need clover. From my research with that motherboard you should be able to boot directly to the nvme from bios as the device does support this according to various sources.
Have you checked that the bios is up to date ?.

@sibliss
Yes, the BIOS is up to date. I went directly to the HP website and got the updated BIOS just this past week… even when putting a password in the administrator section of the BIOS, it shows no options for the M.2 slot, and nothing about it in the BIOS, whatsoever. I find this confusing because they never mention the M.2 slot anywhere except upon their spec sheet and only because they put a 128 GB SSD in it. Only one place is it mentioned!

Do you have any tips or ideas of where I could look in the BIOS or what I should change or anything?

@Wappa
So it turns out this is another one of those computers where its not properly supported hardware wise to boot from nvme. theres even a post in their forums that links to this exact thread a post from racing96mustang https://h30434.www3.hp.com/t5/Desktop-Ha…ht/true#M170946

What this means is that you can only boot an nvme that has a built-in option rom Like the samsung 950 pro. The team mp33 that you have obtained does not have this option rom, therefore this clover method is as good as you can get. Unless you can modify the bios.

I have the DQ77MK mobo and have tried Shonk’s method to try and boot from the USB not sure what I am doing wrong but I just end up booting into windows.
Should disconnect the drive containing windows?
Do all the drives except the NVME have to be disconnected?
I have set the USB as the 1st boot device in the bios as per info the USB stick is formatted to fat32 with EFI folder extracted on it and it lights up on the boot but nothing appears on the screen and the PC just continues booting windows
Help a newbie out please and let me know where I am going wrong…

Hello all,
I am running Ubuntu 20.04 on ZFS, and Windows 10 Pro on ye olde HP Z230. I have the Windows 10 running on NVMe drive on PCI card - unfortunately MY UEFI BIOS does not support NVMe. I created a new boot USB with the latest clover a couple of days ago - Clover revision: 5124 (master, commit d2bec9ba0)

I have both OS’s booting from Clover. I have wasted days trying to put custom entries, and remove dumb artefacts from when Clover scans the Windows Boot manager on the NVMe drive. I think there is a problem with interactions between NvmExpressDxe.efi and the option which disables scanning in the config.plist.

Some symptoms:

a) If I prevent scanning - i tried individually with sub-features of Scan - none seemed to work to turn off Legacy for example.The turn-it-all-off variant seems to work.
<key>Scan</key>
<false/>

The NVMe drive is still scanned even with scan off - producing some rubbish and some generic good entries. My Custom Entries for grub and Win 10 do not appear.

b) If I hide the NVME drive, My Custom Entry for grub works. Cannot get my Custom Entry for Windows 10 to work.

If I both prevent scanning and hide the nvme drive - I get my Custom Entry for grub - which will boot Windows or Ubuntu - but no Custom entry for Windows 10.

I have a working system - its just annoying every time I see it. I am effectively using Clover to give me an NVMe driver, and then I use Grub to multi-boot.

I tried to upload my preboot log - but some German bot said something like ‘NO!’

@Normski



Hi and welcome to the forum, the clover BDU will setup the clover usb automatically and assumes it is configuring to boot the machine you run it on. please be sure to use the media creation tool from Microsoft to create the windows installation media usb and try again. the media creation tool seems to be the way that is most reported as working. there is absolutely no need to disconnect other drives.

@banksiaboy
Hello and welcome to the forum also.
This forum of german origin and there is a minimum amount of posts required before you can upload here.

It would appear to me that perhaps you are going about this the wrong way. you shouldn’t stop the scan and instead set any partitions you wish to hide from the clover menu as hidden volumes in the clover config.plist. keep in mind that you can set both custom legacy and uefi entries within the config.plist also a fun fact is that clover can even replace the need for grub entirely. i know it works because like you i had a Ubuntu dual boot on one of my systems and it worked flawlessly.the only reason to try to stop the scan is a vein attempt to speed up the booting process.

Be aware that your custom entry for UEFI windows does need to be configured with the correct GUID before it will work properly i found i actually had the wrong guid initially when i setup my first one and found that actually i needed the guid for the hidden “system” partition on the nvme.

also please be sure to also run MBR2GPT.EXE to ensure windows is correctly configured for gpt as this is required for the driver to detect the installation.

I hope this helps please report back here for more help and of course you can pm me a copy of your config.plist and i’ll take a look at it.
Regards, Sibliss

@sibliss
Thanks for your reply.
I can boot the Windows 10 partition from the clover-scanned entries. I could be confused as to where they are being picked up from. Maybe from Grub itself.
I installed windows into a GPT partitioned disk from installer run under UEFI USB Windows installer mounted from clover. I think I got that part right (maybe)

% fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 465.78 GiB, 500107862016 bytes, 976773168 sectors
Disk model: Samsung SSD 970 EVO 500GB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: E54D9680-5D41-03AA-A065-53795097EA00

Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1023999 1021952 499M Windows recovery environment
/dev/nvme0n1p2 1024000 1228799 204800 100M EFI System
/dev/nvme0n1p3 1228800 1261567 32768 16M Microsoft reserved
/dev/nvme0n1p4 1261568 976773119 975511552 465.2G Microsoft basic data

% lsblk -d -fs /dev/nvme*
lsblk: /dev/nvme0: not a block device
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
nvme0n1
nvme0n1p1 ntfs Recovery 5EF0448FF0446F79
└─nvme0n1
nvme0n1p2 vfat 8245-CF6C
└─nvme0n1
nvme0n1p3
└─nvme0n1
nvme0n1p4 ntfs 064E48344E481EB5
└─nvme0n1

I’ll pm you my config.plist and preboot.log

Many thanks…

@sbliss
It seems I don’t have permissions to send you a pm

I’m not sure how to read the preboot.log to make custom entries for the scanned entries with screen-shots 37 and 38, or how to force hiding entries like in screenshot 42.
Oops cant load preboot.log here…

37.png

38.png

42.png

I have an NVMe drive on a pci-card. My HP Z230’s UEFI BIOS is too early to recognise NVMe drives.
I absolutely need the NvmExpressDxe.efi drive to boot my Windows 10 system - which is installed on the NVMe drive.

@banksiaboy
yeah my 970 is on a pci card aswell and clover works well for me… I edited the hide entries directly within the config.plist file as follows

IMPORTANT!!!
If you edit the config.plist …you must do it in a linux compliant editor such as the free Notepad++ or you risk corrupting the hidden end line characters

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
	
<key>GUI</key>
<dict>
<key>Hide</key>
<array>
<string>Windows</string>
<string>BOOTX64.EFI</string>
<string>4tb store</string>
<string>2tb store</string>
<string>movies</string>
<string>music</string>
<string>Recovery</string>
</array>
 

 


In your instance you will want to try booting this partition from clover /dev/nvme0n1p2 1024000 1228799 204800 100M EFI System (as it turns out this is the partition where the windows bootloader is actually stored and initialized from)

So i would remove this part entirely
1
2
3
4
5
6
 

<array>
<string>(2,GPT,57DFA7B9-08E0-479E-B404-5515E6EDE5E1,0xFA000,0x32000)</string>
<string>Legacy</string>
</array>
 
 


And i would move the legacy entry to under scan like this
1
2
3
4
5
6
7
8
9
10
11
 

<key>Scan</key>
<dict>
<key>Legacy</key>
<false/>
<key>Entries</key>
<true/>
<key>Tool</key>
<true/>
</dict>
 
 


this is all within the GUI block section of the config.plist as noted above.

i have installed Clovere’s mode on several machines and they works fine, but im stuck with gigabyte GA-EP45-DS4P, im getting this boot screen and whatever i choose it gets me to the first screen. any thoughts ?

IMG.jpg