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

@knightrider2003
glad you have fixed your issue,
those logos are simply windows volumes that have been detected by clover that you may try to boot from you can simply hide the ones you don’t need (ie all but the one that actually boots to windows in your nvme) in the config.plist file.
open it with a text editor i prefer notepad++ because it will respect the xml flags.

under the GUI key in the config.plist
create a new key called Hide
add an array

<key>Hide</key>
<array>
<string>entry to hide</string>
<string>entry 2 to hide</string>
</array>

add as many strings are there are volumes to hide ensure the string matches the volume name on the disk i used diskpart to determine volume names.

@sibliss no matter what button i push, it ends with a blinking cursor. One logo gave me a bcd boot error.

@knightrider2003
well it’s a start because now clover is loading.

the BCD boot error is the entry you want to keep you may hide the others. the microsoft BCD boot error happens because of the of the windows bootloader error i warned about earlier this is probably because you tried to clone the install rather than using a new install which as i have stated cloning windows to different drives will break it’s bootloader.

some pointers for you.
if you can still boot the original source drive in that computer boot the os convert to GPT if you haven’t already …SYSPREP the OS and then power it down. clone the syspreped os image to the nvme drive then boot to the nvme drive

the sysprep will remove the hardware ID’s and stuff used by the windows bootloader which will be reset on the first run of the OS on the new drive :slight_smile:

@sibliss why can’t i just install the os? It’s also a blinking cursor.

what is your installation media ? usb or dvd ?

if you used the Microsoft media creation tool and assuming that driver was copied to the 4 locations i mentioned in the pined post i see no reason it should not work.

@sibliss if i use the dir command in the shell, i can’t see any files on any disk. This isn’t supposed to be.

@knightrider2003
although that is strange i would not worry about it as long as you can install the OS because at the end of the day clover is like maybe 5 seconds on boot and does not effect the rest of your computer.



This is generally NOT true!
To change my NVMe I cloned my system to an internal SSD (not NVMe): it was immediately bootable; then I changed the NVMe-SSD to a bigger one and I cloned the system from the boot-SSD to the new NVMe.
Then I detached the internal SSD, restarted the system and the new NVMe was immediately bootable.

All this without other changes to the system.

@Thiersee
It seems you have been very lucky in that regard… i should say will almost never work (it’s not supposed to). I will assume however you were not running a true legacy install on the old drive since you did not mention having to convert MBR to GPT i assume that means your starting OS was already GPT without GPT the UEFI shell will not read or even detect the pcie nvme ssd …

I feel i should mention in the 15 or so machines i have done now that straight copy idea has not worked not even once. it is a well known fact that the only supported way to clone/deploy a windows 10 OS is via WDS and thus sysprep. the entire purpose of sysprep is to remove unique device identifiers and restore the image to a state such that it can be installed on other hardware via WDS. this makes sysprep almost ideal for the our purposes of transferring an existing OS to another drive. as an MTA/MCP with an understanding of MS systems i am inclined to prefer and recommend the sysprep route.

to quote the MS website



https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/sysprep–generalize–a-windows-installation

Seems i have to convert the directory structure of the boot drive from BIOS to UEFI.

@knightrider2003

yes there is a tool for this https://docs.microsoft.com/en-us/windows/deployment/mbr-to-gpt

@sibliss
I forgot to mention, it was the same hardware and already GPT-partitioned/formatted !

@knightrider2003

If you download an older version within BDU (Options/Configuration) it prepares the target drive with the older Clover-version; .pkg-files get you, if you download from the Clover-HP.

@sibliss think it will break the bootability.

@knightrider2003
it should not break anything. atleast in theory!

@sibliss how does that tool do that? It doesn’t change folderstructure at all.

@knightrider2003



no it is not meant to change the file structure, this tool converts the MBR (Master Boot Record) hard drive tables to GPT ( GUID Partition Table)

GPT is the abbreviation of the GUID Partition Table. According to Wikipedia, GPT is a standard layout of partition tables of a physical computer storage device, such as a hard disk drive or solid-state drive. Forming a part of the Unified Extensible Firmware Interface (UEFI) standard, it is also used for some BIOS systems because of the limitations of master boot record (MBR) partition tables.

@sibliss seems like the disk already was in basic gpt, that’s why clover could read it. Then the bootpartition, it hasn’t a drive letter. So can’t edit it. So clover is looking for the uefi folder structure, while it is still in bios folder structure after being converted to gpt.

@knightrider2003

so give it a letter with disk part ?
Also clover should not be looking at file structure, does your volume have a label ?

@sibliss just a ‘*’ .



For some reason this does not work for me. I also tried creating the same file using notepad++.

I created the file the following method:
Shell> edit fs0:\startup.nsh
— added a single line inside —
fs0:
ctrl+s
enter
ctrl+q

Shell> cat fs0:\startup.nsh
fs0:

So I have startup.nsh under root of fs0. The reason having a single line inside the file is to debug the failure isolating other potential errors.

Shell> fs0:\startup.nsh
Command Error Status: Out of Resources

It seems like some memory allocation problem. Is there anyone who suspects what could be the problem?

///
Actually inside startup.nsh final goal is to have:
fs0:
load efi\clover\drivers64\NvmExpressDxe.efi
map -r
fs1:
efi\boot\bootx64.efi