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

@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

@biber
Just quickly from the top of my head I’d look at the config generated by the BDU be sure to run BDU to make the clover stick only on the machine you are intending to boot from it. As it configures itself for that machines specific hardware.
My guess is something is being configured incorrectly, good news is the configs are all in the config.plist and there are literally millions of page’s about configuring clovers config.plist and troubleshooting on the various mac/hachintosh forums.
Its hard to give you anything more precise without more information. I hope this helps and good luck.

stick is created on that machine, and honestly i dont know how to configure that file. maybe problem is old intel P45 chipset?

@biber
Honestly I’d just start by first recreating the clover stick and then searching the various mac hackintosh forums for anything about that motherboard.
and then specifically the issue you’re having.
as noted in one of my recent replies on the forum you can edit the config file with a text editor such as notepad++ it’s important to use an editor that will respect the Linux end line characters within the file failure to do so will break the file and thus the config.

It’s entirely possible that sometimes for what ever reason the bdu didn’t work right the first time but may work the second time.

Thanks for the guide, I’ve successfully cloned my MBR SSD Windows installation to GPT NVMe on ASUS P6X58D Premium board with stock BIOS (at latest official version).

The process roughly looked like this:
- Use Samsung Data Migration tool to clone MBR SSD Windows to the NVMe as MBR
- Shrink the Windows partition on NVMe by around 200MB to accommodate creation of new EFI partition
- Boot into Windows recovery environment from the MBR SSD (hold shift while you select reboot, select option for more boot options to be shown at next startup, then press F10 to see recovery environment option, then select command line)
- Once on the command line inside the recovery environment be careful to select the right disks and perform the mbr2gpt followed by bcdboot commands from faststorage.eu /how-to-clone-windows-10-from-sata-ssd-to-m-2-ssd-fix-inaccessible-boot-device/
- Follow the 1st post in this thread including the extra steps for 3a (there’s a link at the top of the 1st port that leads you to the extra instructions) to create a USB drive with Clover, in my case I used an SD card USB reader (great use for those old small capacity SD cards!)
- Then I was able to boot to GPT converted NVMe Windows clone and so far no issues

Thanks everyone who shared their past experience in this informative thread.

@sengork
Thankyou for the feedback, I am glad you were able to get it working following the instructions. Cloning is certainly possible (having also done it myself) but posses a number of variables that can be issues and thats why Cloning remains beyond the scope of this thread.

After booting on legacy motherboard with Clover UEFI boot method, is it normal that SMBIOS isn’t able to detect the correct Manufacturer and Model number? I tried this in CPU-Z, HWMon and HWiNFO64 they all cannot detect this. Booting from the same Windows installation copy via legacy SSD all 3 of the programs can detect the correct Manufacturer and Model number.

@sengork
I suspect you are using motherboard/chipset emulation in clover which is why it can’t detect it, in that instance yes it would be normal behavior.

Thanks is there a way to remove the emulation of hardware? I’ve tried a couple of things but nothing changed so far.

EDIT: I moved to DUET + REFIND method using a Clover NVMe EFI driver:
[Guide] NVMe-boot for systems with legacy BIOS and UEFI board (DUET-REFIND) (58)

Hi folks,

It was working well in the past using the instructions on the first page, on my old ASROck MB that980DE3/U3S3, and I had some difficulties to replicate that with today’s clover code.
1/ Indeed, drivers do not have x64 extensions. I placed the NWMe driver file in BIOS folder.
2/ Some USB sticks are a bit flaky regarding clover. I used a 16Gb Mtec > No go. Could not see the cdrom image in clover menuy.
Then a 16Gb sdcard in an sd card to usb adapter > I could see the drive / CDROM Win10 image.
As long as you do not see your stick/drive > You need to try an other usb stick.

3/ I could not boot from this CDROM bootable microsoft win 10 ( made using the microsoft tool) , and got an error message like cdboot.efi did not return bla bla bla.

I pressed F3, to display hidden boot entries, and I had additional entries appearing, one on the full left, which is apparently the clover boot itself , and one on the right of the microsoft EFI entry > Boot UEFI external… And that one did boot the Win10 install CD! It seems, at least for my install, that the default displayed boot partition for Microsoft Win10 CDROM is not the correct entry to boot the CDROM. I had to select a hidden one.

I could create a new partition and format it on the NVME SSD.

Then when the Win10 install process reboots, you have to select the your bootable NVME SSD, and then install process continues.

You will have to cleanup the entries list for simple and clean boots in the future, and clover guides will help for that.

For those who wonder how to connect an SSD to a MB like that one that has 2 PCIE 1x slots, and 1 PCI16x slot, I use a 1X to 16x adapter used for crypto currency crunching stations. I use also a cheap NVME 2x stick. This gives almost the performance of a full SATA SSD, that I do not have… I just save a few $$ here. And with that setup, and a FX6300 + GFX1080, I have a cheap and nice little PC to play FS2020 at high graphics settings…

Hope this will help some of you.

@hobi
I talk about the new clover file layout and where to place the nvme driver in my pinned post, see the blue text on the first page.
I suspect the hidden entry you speak of for the cd image may just be the legacy boot option which is hidden by default.
As you have stated and I can’t say it enough you just need to keep trying usb device’s untill you find one that does work ( i guess its what clover has proper drivers for ? )

Hello,

Trying to get this working, so far still trying.

Booting from Clover USB doesn’t detect CD drive, so made a Windows 10 installer USB.

Clover detects installer USB, but once selected goes to the usual “Press any key to boot from CD/DVD…” and hitting anything displays “Error: No mapping returned from cdboot.efi” then hangs

A previous user (win-raid. c o m/t2375f50-Guide-NVMe-boot-without-modding-your-UEFI-BIOS-Clover-EFI-bootloader-method-39.html#msg113539) talked about the same issue and shared a potential solution (win-raid. c o m/t2375f50-Guide-NVMe-boot-without-modding-your-UEFI-BIOS-Clover-EFI-bootloader-method-39.html#msg114082) but does not explain how to use the UEFI64 shell command line or how to launch “bootx64.efi”.

Is this on the Clover USB? The Windows Install USB? This is on a 100% legacy BIOS board, x64 system

Any guidance to getting this working would be appreciated

I write down what I am doing:



1/ Connect USB key (target to boot onto it)
2/ Download BDU from cVad website
3/ Launch BDU
4/ Options->Configuration->check "check at startup"
5/ click on "check now"6/ click "ok"
6/ verify that the last version match the last github version of clover (on github it is CloverHackyColor/CloverBootloader)
7/ Verify that the correct USB key is highlighted
8/ click on format
9/ confirm

10/ check that about 200Mo (184Mo here) is occupied on the usb key
11/ Browse the key to this directory : EFI\CLOVER\drivers\off
12/ copy file NvmExpressDxe.efi
13/ paste it at 4 locations: (create dir in not existing, all actually existed for me)
Efi\CLOVER\drivers
Efi\CLOVER\drivers\BIOS
Efi\CLOVER\drivers\Off
Efi\CLOVER\drivers\UEFI
14/ create this directories
Efi\CLOVER\drivers32uefi
Efi\CLOVER\drivers64uef
15/ copy the NvmExpressDxe.efi file in each of the 2 newly created directory

16/ I didn’t edited the config.plist at all, I am not sure what to customize and it seems to be made for quicker boot. At this step I would be fine with booting whatever the time it takes.


---------------

I ran into the "no mapping returned from cdboot.efi"
After a search, I found a post from sibliss answering marsIANin1991.

1/ I formated my new ssd to NTFS/GPT and without MBR with the minitool partition software.
2/ I can now see the new ssd in the file browser and access it (empty).
3/ I confirm that booting on the 2nd usb key directly (the one with windows 10 installer) is working and I can reach the windows setup wizard.
4/ I am still running into the “no mapping returned from cdboot.efi”

--------------

I tried

rufus to build my windows installer usb key but it is not identified by clover.
When I go in the shell, the only filsesystem displayed by map command is the one from the usb key that host clover.
I can see the partitions corresponding to both the windows installer usbkey and the nvme ssd (I unplugged other hard drive to prevent errors).
They are displayed as BLKx (where x is a number) corresponding to partitions but not as a browsable file system.

To be honest I run out of idea.

Tomorrow I will try this tutorial on youtube (by ViT)
#How to install windows 10 to #SSD #NVME from your old hdd (on all mainboard not support NVME boot)

Note : I also failed with this tutorial from this forum (see last reply)
[Guide] NVMe-boot for systems with legacy BIOS and UEFI board (DUET-REFIND)
→ details about my config can be found there