[Guide] NVMe-boot w/o modding the BIOS (Clover-EFI method)

Report: SOLVED

The latest Clover downloaded today (11-22 yesterday actually) is NOT booting my Windows 10 UEFI install. DUET has been working flawless on this machine and booting the exact same Windows install just fine, but if I boot Clover (instead of DUET) and select the same exact Windows install as DUET boots, it just goes to a black screen with a blinking cursor in the top left.

Anyone know what might be the problem? Or has the latest Clover got some newly introduced bug now, or feature change that I need to work around?

EDIT: Forgot to move the efi files to the proper folder. Hope all is enjoying their holidays.

Got this working on a Dell Optiplex 3010 with a WD Black 256gig NVMe, and no SATA hard drive installed.

With UEFI enabled, option ROMs enabled or disabled, and Secure boot off, the Optiplex 3010 recognizes a “Storage device” on PCI slot 1 in its BIOS, but it can’t boot from the NVMe directly. I tried numerous things to make it work directly, including updating the BIOS, but nothing worked.

With UEFI still enabled and Clover on a USB flash drive, the Dell has no problem finding Clover and adding to the UEFI boot menu.

,

I am testing potentially using this in a more professional business environment, so I have a Windows Deployment Services (WDS) thick image of Windows 10 created with Sysprep and written to the WDS image store via PXE / WinPE Capture. This then installs from Server 2016 over the network onto the Optiplex 3010 using PXE / WinPE Deploy.

With UEFI enabled on the Optiplex, I have no issues with the PXE boot and then Windows 10 WinPE detecting the WD Black NVMe and declaring everything is fine. I used diskpart to clean the SSD, and then WinPE wrote the GPT image without any problems… though of course it fails to be detected by the 3010 EFI and I can’t get any further.

Clover is able to find the boot partition and the Windows 10 Sysprep / post-imaging OOBE setup kicked off without any problems.

The professional-looking way to boot Clover from USB without any extra junk hanging off the back of your computer, is to buy a PCIe x1 USB expansion card that has an internal USB connector. Plug the Clover USB stick into that, close the case, set it as the boot device in your motherboard config menus, and no one knows it is in there.

For a low-profile card slot in a small form factor system, it may be necessary to buy a USB stick that is physically very short and stubby, to be able to close the case with it plugged into the expansion card.

,

And once you have Clover working the way you want, you can remove it from the drives list in Windows, so that you never see those drive letters.
- Right-click on Start, and choose Disk Management
- Scroll down until you see the USB drive with a partition named CLOVER
- Your USB stick probably has a huge unused unformatted RAW partition on it after the Clover partition. Select that RAW partition, right-click and choose Delete Volume. Poof, that drive letter disappears.
- Right click on the CLOVER partition, and select Change Driver Letter and Path, then click Remove. You will see a warning. Click Yes, and it disappears. It still works to boot the system even though you can’t see it anymore.

If for some reason you need to make changes to the USB drive, repeat this last step to re-add a drive letter to the CLOVER partition.

For people having problems with getting Clover to work for NVMe booting Windows / Linux, please note that the primary purpose of Clover is to build a “Hackintosh” system to run Apple OS X on non-Apple hardware.

With Clover trying to simulate Apple hardware that does not really exist, this is introducing additional unnecessary programming complexity into the boot process that may screwing things up for you, and none of it is necessary if you aren’t trying to boot OS X on a non-Mac.

I’ve been going through the USB boot stick to see how much of Clover I can delete and still have it boot Windows 10 without any problem, and it looks like 99% of what Clover includes by default can be discarded.

I have so far whittled Clover down to just these files and it still works to boot the NVMe Windows 10 from UEFI on my Dell Optiplex 3010:

1
2
3
4
5
6
7
8
 
\boot
\boot6
\boot7
\EFI\BOOT\BOOTX64.efi
\EFI\CLOVER\clover.plist
\EFI\CLOVER\CLOVERX64.efi
\EFI\CLOVER\drivers64\NvmExpressDxe-64.efi
\EFI\CLOVER\drivers64UEFI\NvmExpressDxe-64.efi
 


Then in the configuration file "clover.plist" ... 99% of the Hackintosh settings of this 25 kilobyte text file can be removed so that all that remains is:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
<key>Boot</key>
<dict>
<key>#Arguments</key>
<string>slide=0 darkwake=0</string>
<key>#DefaultLoader</key>
<string>boot.efi</string>
<key>#LegacyBiosDefaultEntry</key>
<integer>0</integer>
<key>#XMPDetection</key>
<string>-1</string>
<key>Debug</key>
<false/>
<key>DefaultVolume</key>
<string>LastBootedVolume</string>
<key>DisableCloverHotkeys</key>
<true/>
<key>Fast</key>
<true/>
<key>Legacy</key>
<string>PBR</string>
<key>NeverDoRecovery</key>
<true/>
<key>Timeout</key>
<integer>5</integer>
</dict>
</dict>
</plist>
 


In this I have changed "DisableCloverHotkeys" to true so that Clover functions merely as a simple bootloader and nothing more.

And with the "Fast" option set to true, the Clover boot selection menu does not appear at all, it doesn't wait for the timeout, and all I see is Windows 10 immediately starting after seeing the Dell POST logo. You will want to leave "Fast" set to false until you have first run Clover and selected the correct boot partition. Once it knows which partition to use at every boot, "Fast" can be set to true.



You could also use a USB header and leave the cable inside the case… assuming you have a USB header available on the MB…



What do you think the minimal size would be for that EFI partition, then?

I don’t know what the minimum size of a GPT partition can be, but used space on the Clover boot partition with the files trimmed down is 2.77 megabytes.



,

Also I’ve been trying to find a “USB header to USB-A socket adapter” for an internal motherboard USB header connector, and so far I have not found a source for it. There are a bunch of possible different header shapes and pin counts. USB 2.0 headers are normally 9 or 10 pins with two separate ports that each only use 4 of the pins.


I don#t know, where you are living and if you have the possibility to order on amazon, the two are only an example:
Adapter
Cable

@Plawerth
Wow, great findings!
Could you list a “before” and “after” comparrision? I would then like to add these steps as additional for more advanced users.
I don’t have the Workstation here anymore.

If you would like to use a complete “clean” approach for enterprise enviroment, you may try to compile DUET/Tianocore.
[Guide] NVMe-boot without modding your UEFI/BIOS (Clover-EFI bootloader method) (10)
[Guide] NVMe-boot without modding your UEFI/BIOS (Clover-EFI bootloader method) (2)

You could contact the users for more details.
There might be more information about DUET a few pages before/after the above linked posts.
search.php?zeit=9999&s=2&forum=0&q=DUET

A stripped down version of Clover will also work, but maybe this would suit you more.


Fore the headers see @asheenlevrai 's answer.
Alternative places to find this:
https://www.ebay.com/sch/i.html?_from=R4…header&_sacat=0
https://aliexpress.com/wholesale?catId=0…rnal+usb+header

Hi,

I generated today a bootable USB-flash-drive with the BDU: the Clover-version the BDU installs is the 4330 (even if the last version is the 4334).
Booting the PC with this flash-drive the icons in the first row are not shown, only those in the lower row (shell, exit, restart and so on).

Last week the BDU downloaded the Clover-version 4318 and with this version the boot process works. and I can boot from my NVMe SSD.
Does somebody have hints for me?

TNX

I installed windows 10 on the Nvme 960 evo as per your instruction, on UEFI/legacy bios of z620 system. is it the fact that I need to leave usb drive in all the time in order to boot from clover? I failed to mod the bios as it does not let me.
thanks

Post #150:
It was my mistake, I forgot point 3a in the HowTo….

I have tried to install on 4 different usb and they all fail? Any ideas? I get an error message saying i cant connect to server http something and then "drivers not installed".

More info please. When do the errors occur. Which step?


Just tested with a 1 GB SD-Card and it works!

it just wasnt connecting to the server for files to download. Eventually, it downloaded. When i booted up and ran it , it worked and i had my system running fine. The next morning it had crashed and no longer boots at all. Everything seems a bit wonky now. when i try to do a fresh install it wont let me install windows from thumb drive even though the option is available.

I am planning to use this method. And: I am planning for a dual boot system with Win10Pro and a Hackintosh w/ Sierra on ONE drive with two partitions. I know, how to install the OSs, but not, how to create a boot loader afterwards. Is there a way to add some sort of boot loader to the Clover USB-stick, where I can choose, from which partition the computer will be booting? Or am I completely mistaken in my assumption, how a boot loader works?

Just got my HP Z800 booting for a Kingston KC1000 NVMe drive and want to say thanks to all that worked on this. I spent a very frustrating few hours trying other methods and got no where.But now i have amy 9 year old workstation with 1,650 Mbps read and 1,540 Mbps writes on the boot drive, a massive improvement over the 250 Mbps via the SATA controller. Next challenge is to get the UEFI splash screen to auto select the NVME drive and not need a click with the mouse. If anonye with a Z800 wants to boot from NVME then follow this guide ignore any others you see as you will waste a lot of time.

Hi Charlie,

look at post #90; in addition you can set the delay too before it starts.

Thiersee

I am waiting till my mini USB arrives and i will follow the suggestion from #90. I am also going to disable the 2 on board HP RAIDs that start in Legacy BIOS and have a play with cutting out all of the Hackintosh drivers etc as suggested in another post. But I want to leave my working USB stick as is just in case somwething goes wrong.

I really like the security aspect of this Clover UEFI set up. I will leave my original SATA SSD in place but set it as OFFLINE in Disk Management within the UEFI Boot disk. Then in my SATA SSD Boot Windows OS set the NVMe as OFFLINE in Disk Management there. That way if I remove the micro USB anyone getting into my workstation is highly unlikely to get my files. When they will boot in to the dumy OS based on the old SATA SSD they not be able to see the NVMe from Windows. Obviously if they look in Disk Management and spot it as offline they can bring it online. But i dont think many people would do that. All I need to look at now is if BITLOCKER works and what the performance hit will be. It will be interesting to see if a disk encrypted by BITLOCKER from the UEFI Boot OS can be viewed in the Legacy SATA based OS that has not got BITLOCKER set up. My hope is that it will not be possible to decrypt it.

Regards

Charlie